Git常用命令
git远程仓库
1
2
3
4
5
6
7
8
9$ git remote #列出远程仓库的名字 -v 显示仓库地址
$ git remote add origin <URL> #添加地址URL的仓库命名为origin
$ git branch -r #查看远程分支
$ git remote show origin # 查看远程库的一些信息
$ git remote prune origin #删除远程失效的分支git提交
1
2
3
4
5
6
7$ git add a.txt # 添加a.txt
$ git add . # 添加所有文件
$ git commit -m "提交记录" # 提交记录
$ git push origin master # 推送
$ git commit -am "" # git add 和git commit可以合并成以下一条命令–amend 参数
commit之后,如果需要对commit修改,可以用 git commit -amend 进行修改,并且上一个commit会撤销。
git分支操作
创建dev分支
1
2
3
4
5$ git branch dev #创建dev分支
$ git checkout dev #切换到dev分支
#可以合并成以下一条命令
$ git checkout -b dev #创建并切换到dev分支
$ git checkout -b dev_new origin/dev_new #从远程分支拉取dev_new到本地dev_new分支查看分支
1
2
3
4
5$ git branch #查看本地分支
$ git branch -a #查看本地和远程分支
$ git remote show origin # 对比origin分支与本地信息
$ git remote prune origin # 删除远程不存在的本地分支更新远程分支信息
1
2
3$ git push origin dev # 推送本地dev分支到远程origin仓库
$ git fetch -p #更新远程仓库信息,删除已被删除的远程分支
删除分支
1
2
3
4
5
6
7# 删除本地分支
$ git branch -d dev #删除dev分支
$ git branch -D dev #强制删除
# 远删除程分支
$ git push origin --delete <branchName> # 方式一
$ git push origin :<branchName> # 方式二:推送空分支到远程分支合并dev分支到master分支
1
2
3
4$ git checkout master #切换到master分支
$ git merge --no-ff -m "merge test" dev #合并dev分支
# --no-ff 表示禁用Fast forward
Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息cherry-pick 将指定的commit应用到当前分支
cherry-pick还有很多参数, 可以查看一下git文档1
2
3$ git cherry-pick commitId # 将 commitId 应用到当前分支
$ git cherry-pick id1 id2 # 将 id1, id2 应用到当前分支
$ git cherry-pick id1..id3 # 将 id1到id3 的提交都应用到当前分支
Git 标签
- 列出标签
1
2$ git tag #列出标签(不添加信息)
$ git tag -l 'v1.0.*' # 列出v1.0系列的标签 - 新建标签
1
2$ git tag v2.0 #打一个简单的标签
$ git tag -a v2.0.1 -m "详细标签" #打一个带注释的标签 - 删除标签
1
2$ git tag -d 标签名 #删除本地标签
$ git push origin :refs/tags/标签名 #删除远程标签 - 显示标签详情
1
$ git show v2.0 #相应标签的版本信息
- 推送标签到远程仓库
1
2
3$ git push origin --tags #推送所有本地标签到远程仓库
$ git push origin v2.0.0 #推送v2.0.0到远程仓库
$ git push origin --delete tag <tagname> #删除远程Tag
- 列出标签
git clone 加速
指定深度, –depth=1 表示只克隆最近的一次commit
1 | git clone XXX --depth=1 |
让git后台下载
1 | git fetch --unshallow |
git所有记录被删其实不是立即删除的, 可以理解为gc机制, 日志超过一定的数量才会真正删除
1 | git reflog |
输入完成之后按Esc退出编辑模式,连续按两次大写Z就会退回到git界面了