git忽略文件失效
git rm -r --cached . //清除缓存
git add . //添加所有文件
git commit -m 'update .gitignore' //提交更新.gitignore
git 提交的一些规范
开发git commit规范:
git commit --fix'我的问题'
feat:新功能
fix:BUG 修复
docs:文档变更
style:文字格式修改
refactor:代码重构
perf:性能改进
test:测试代码
chore:工具自动生成
官网:https://git-scm.com/book/zh/v2
菜鸟:https://www.runoob.com/git/git-gitee.html
git fork项目后 如何同步流程
杨天龙 3-22 10:25:29
git remote add upstream ssh://git@git.yschsz.com:20022/frontend/dq-operation.git
杨天龙 3-22 10:25:35
git remote set-url --push upstream no-pushing
杨天龙 3-22 10:25:39
git fetch upstream
杨天龙 3-22 10:34:03
git pull upstream main
参考:https://blog.csdn.net/core571/article/details/84029350
克隆 fork 的主分支
$ git clone (url)
$ cd project
$ git checkout -b featureA
# (work)
$ git commit
# (work)
$ git commit
添加 fork 后的分支
$ git remote add myfork (url)
推到特性分支的界面上
$ git push -u myfork featureA
合并至主仓库
在fork的仓库新建合并请求,来源分支为此仓库的特性分支,目标分支为主仓库的目标分支。
同步主分支上
$ git fetch origin
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (1/1), done.
From http:///liuq/mm32_lib_head_2.0
92fe206..7b1201c dev -> origin/dev
添加 主分支
git remote add upstream ssh://git@git.yschsz.com:20022/frontend/dq-operation.git
设置 路径 不能推
git remote set-url --push upstream no-pushing
拉代码 不会合并
git fetch upstream
拉代码 并合并
git pull upstream main
下载及秘钥配对
1.下载git https://git-scm.com/
2.查看是否有秘钥
cat ~/.ssh/id_rsa.pub
3.生成秘钥并配对 :
在用户中看是否有.ssh 文件 如果没有创建秘钥
ssh-keygen -t rsa -C "email" (email为自己的邮箱,如123456@qq.com)
4.github 和gitee 配置:https://www.runoob.com/git/git-remote-repo.html
5.查看公钥 秘钥是否配置好(github)(gitee)
ssh git@github.com
ssh git@gitee.com
git常见命令
6.git 常见命令
mkdir gittest 创建文件夹
git init 初始化仓库
vi .git/config (查看.git 配置)
vim .git/config 查看git配置文件
git config --list --show-origin 查看配置
git config --list 查看配置
touch index.txt 创建文件
vim index.txt 打开index.txt 文件
git add filename 添加本地缓存
没有提交前(第一次不用管进行覆盖)
git status 查看提交状态
git commit -m'第一次提交' 提交本地并备注
git rm test.txt 删除本地库内容
修改内容
git status 查看提交状态
git add filename 添加文件缓存
git checkout filename 还原保存的文件-本地仓库版本
git checkout -- utils\ 撤回没有提交的修改
> # 查看指定文件的历史啊版本 git log <filename>
> # 回滚到指定commit ID git checkout <commitID><fileName>
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了
reset 回滚会造成 版本比远程低 造成提交失败 因此revert 提交一个新的版本 提交同步
git revert commitID 反坐一个版本
git commit -m'第二次提交'
git log 查看提交日志
git reset --hard commit_id 回滚到以前版本
git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]
git log -5 查看前5条
git diff 5d57640f0689df210bbae44b5a24dad78e8e9f06 对比文件变化
git push --set-upstream origin develop 设置提交路径
git branch --set-upstream-to=origin/dev dev 设置git pull/git push 默认地址
git branch --set-upstream-to=origin/remote_branch your_branch
多次add 后
git commit --aemnd -m '最后一次提说明' 补充说明
// hard 丢弃 soft 保存 mixed 缓存区
// merge 保留 工作区和index之间的差异 keep 保留工作区和HEAD之间的差异。
分支
git branch develop 创建分支develop
git checkout develop 切换分支develop
git checkout origin/master -- path/folder/filename
git checkout master 切换主分支
git merge develop 合并到主分支
情形1:本地已经创建了分支dev(以dev为例,下同),而远程没有
可以通过以下2种方法在远程创建分支dev,并与本地分支进行关联:
方法1: git push -u origin dev
方法2: git push --set-upstream origin dev
情形2:远程已经创建了分支dev,而本地没有
在本地创建分支并与远程分支进行关联,也有2种方法:
方法1分为两步:
step1:先将远程分支pull到本地 git pull origin dev
step2:再在本地创建分支并与之关联,又有2种方法
git checkout -b branchName commitId //选取远程分支的版本
(1)git checkout -b dev origin/dev //创建
(2)git checkout -b dev --track origin/dev #可以简写为git checkout --track origin/dev //关联
远程分支
git pull origin dev:dev-------两个dev分别表示远程分支名:本地分支名
选择本地有(创建) 且关联分支
$ git checkout -b DQr origin/DQr
提交当前分支
git push origin DQr
拉取当前分支
git pull origin DQr
创建并建立
git checkout -b zhuang-hand origin/zhuang-hand
git branch -a 查看本地/远程分支
git branch -D dev 删除本地分支
git push origin --delete [branch_name]
git fetch -p 清理本地无效分支(远程已删除本地没删除的分支)
git branch | grep 'branchName' 如果分支太多,还可以用此命令进行分支模糊查找
打标签 tag
git 打标签
1 打标签 git tag <name>
2.git tag -a v1.4 -m "my version 1.4" 打标签且增加描述
5.git log --pretty=oneline 查看历史记录
6.git tag -a v3.7.5 `d0fe218bb5d4fc745c6a26924506cea8e57cf5ad`历史打标签 (添加 描叙)
3.查看所有打的标签 git tag 或者 git tag -l 或者 git tag --list (v1.0 v2.0 标签号)
4.git tag -l "v1.8.5*" 查看一个系列的版本
7.git show v1.0(版本号) 展示标签号
ssh -T 'ssh://yushi@192.168.1.126:29418/Soft2New/program/triage 查看权限
git push origin v1.5 推送单个标签
git push origin --tag 推送多个标签
git tag -d v1.4-lw 删除一个本地标签
Deleted tag 'v1.4-lw' (was e7d5add) 删除一个本地标签
git push origin :refs/tags/v1.4-lw 删除远程一个标签
git push origin --delete <tagname> 删除远程一个标签
git checkout 2.0.0 git 检出一个标签
git tag -l | xargs git tag -d #删除所有本地分支
git fetch origin --prune #从远程拉取所有信息
\#查询远程tags的命令如下:
git ls-remote --tags origin
tag常用git命令:
git tag #列出所有tag
git tag -l v1.* #列出符合条件的tag(筛选作用)
git tag [tag名] #创建轻量tag(无-m标注信息)
git tag -a [tag名] #创建含注解的tag
git push origin --tags #推送所有本地tag到远程
git push origin [本地tag名] #推送指定本地tag到远程
git tag -d [本地tag名] #删除本地指定tag
git push origin :refs/tags/[远程tag名] #删除远程指定tag
git fetch origin [远程tag名] #拉取远程指定tag
git show [tag名] #显示指定tag详细信息
回滚最新
$ git reflog 回滚未来
git 删除分支后找回
git fsck --lost-found
git show + id
git merge + id
参考:https://blog.csdn.net/wh_19910525/article/details/7842503
远程仓库关联
第一种方式
git clone git clone git@gitee.com:***/giteetest.git //克隆远程仓库
工作开展
git status
git add filename
git commit -m'提交描叙'
git pull origin master 拉取远程主仓库
git push origin master 提交远程主仓库
第二种方式
git remote add origin https://gitee.com/kingCould/HelloWord.git //关联远程仓库
git pull --rebase origin master的区别 直线
git pull origin master 并行结点
git push -u origin master // 第一次提交 默认master (空仓库)
git push -u origin master -f // 当前分支强制覆盖 远程的都没有了
git push origin master // 后面提交
git remote -v // 查看远程路径
git remote remove origin //删除远程路径
git merge:
D--------E / \ A---B---C---F----G--- test, master
git rebase
A—B—D—E—C‘—F‘— test, master
rebase好处 想要更好的提交树,使用rebase操作会更好一点。 这样可以线性的看到每一次提交,并且没有增加提交节点。 merge
操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add 修改,commit 就可以了。 而rebase
操作的话,会中断rebase,同时会提示去解决冲突。 解决冲突后,将修改add后执行git rebase
–continue继续操作,或者git rebase –skip忽略冲突。
vim 相关文件(liunx命令)
- mkdir 创建目录
- touch 创建文件
- pwd 查看当前目录
- ls / ls -al 查看目录下所有内容
- cat 查看文件内容
- cd 切换目录
- wc 统计字数信息
- more/less 查看文件(git 没有more 这个命令 linux 查找文件用的)
参考:https://www.cnblogs.com/aijianshi/p/5750911.html - rm 删除文件
- rmdir 删除文件夹
- rm -rf code 删除文件夹的文件
-mv 移动文件/文件夹(重命名) - cp 复制文件 vim 文件
- head -5 index.html (文件前几行)
- tail 查看文件后几行 tab自动匹配(2)
- history 历史记录
- ssh 远程登录(ssh root@gitlab.study.com)
- >和>>重定向 (echo hello world!>READMW.md) >覆盖 >>追加 curl http://www.baidu.com>1.txt
- wget 下载 wget https://node.js.org?dist/v4.40/node-v4.4.0.tar.gz
- curl 网络请求 (curl http://www.baidu.com) who am i 查看当前用户
- | 管道符 把上次的结果当做下次参数 grep 匹配内容 一般结合管道符 ls -al | grep log.txt >output.txt
insert 输入模式
通过 Esc 切换
ctrl + v 视图模块
y 复制
p 黏贴
d 删除
按 insert 输入文件
按 Esc 退出文件
:w保存文件但不退出vi 编辑
:w! 强制保存,不退出vi 编辑
:w file将修改另存到file中,不退出vi 编辑
:wq保存文件并退出vi 编辑
:wq!强制保存文件并退出vi 编辑
q:不保存文件并退出vi 编辑
:q!不保存文件并强制退出vi 编辑
:e!放弃所有修改,从上次保存文件开始在编辑
拉取远程单个文件
# 1.初始化
mkdir localdir # 创建用于作为本地仓库的文件夹
cd localdir # 进入文件夹
git init # 在本地指定文件夹内执行此命令设置为git仓库
# 2. 拉取remote all objects信息
git remote add -f origin http://github/projectName.git # 添加远程仓库地址,实现拉取remote的all objects信息
# 3. 开启sparse clone
git config core.sparsecheckout true # 用于控制是否允许设置pull指定文件/夹,适用于Git1.7.0以后版本,本质是开启sparse clone
echo "fileName" >> .git/info/sparse-checkout # 本地目录的.git文件夹下,如果没有sparse-checkout文件则创建,在其中添加指定的文件/夹fileName,就是需要拉取的那个特定文件/夹。*表示所有,!表示匹配相反
cat .git/info/sparse-chechout # 查看
# 4. 拉取指定目录
git pull origin master # 拉取命令是一样的,只是已经通过配置文件sparse-chechout指定了目标文件/夹
————————————————
版权声明:本文为CSDN博主「quantLearner」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/The_Time_Runner/article/details/105870217
gitee 代码管理工具(管理代码问题)
https://gitee.com/
工具 git(原始) GitHub(小猫) vscode