文章记述了通过终端命令行使用git频率较高的一些操作,这些操作包括仓库管理,远程仓库,分支管理,标签管理等。
仓库管理
本地初始化仓库
$ git init
克隆一个远程仓库
$ git clone htts://xx.xx.xx.xx.git
查看仓库状态
$ git status [-s]
工作区文件丢弃(discard)
$ git checkout -- <file>
添加修改内容到暂存区
$ git add [name | .]
暂存区文件恢复到工作区(unstage)
$ git reset HEAD <file>
提交暂存区内容到分支
$ git commit -m '描述'
撤销未commit的merge操作
$ git merge --abort
撤销某次commit_id
$ git revert commit_id
撤销 到 某次commit(之后的提交都会被丢掉或撤回到工作区)
- 查看要返回的 commit_id
$ git log
- 撤销commit操作
$ git reset --hard commit_id
git 该命令不会保存撤回的代码,如果要保存撤回的代码,使用 git reset commit_id
撤销已经reset --hard的操作
- 查看已经reset的历史,查找commit_id
$ git reflog
- 通过id撤销操作
$ git checkout -b recovery 23f74d5
远程分支
关联一个仓库到远程分支
$ git remote add origin git@0.0.0.0:/path/test.git
推送分支到远程
$ git push -u origin <branchName>
查看最新分支(远程主机所有更新)
$ git fetch <主机名>
查看所有分支列表(红色标记)
$ git branch -a
查看远程分支
$ git branch -r
检出远程分支(本地创建一个分支,切换到该分支,并映射一个远程分支)
$ git checkout -b localBrachName origin/branchName
切换到远程分支
$ git checkout --track origin/branchName
查看远程分支详细信息
$ git remote show origin
拉取远程分支
$ git pull origin branchName:branchName
命令删除远程分支
$ git push origin --delete <branchName>
推送空分支删除远程分支
$ git push origin :<branchName>
分支管理
创建分支
$ git branch <name>
查看本地所有分支
$ git branch
切换分支
$ git checkout <name>
合并dev分支到当前分支
$ git merge dev
修改本地分支名字
$ git branch -m devel develop
将某个提交应用到 当前分支 (如:c0a5abda8ed500aeb16a120f85d930a3b194fa4c)
$ git cherry-pick c0a5abda8ed500aeb16a120f85d930a3b194fa4c
删除本地分支
$ git branch -D branchName
批量删除远程分支(master|dev 分支除外)
$ git branch -r| grep -v -E 'master|dev' | sed 's/origin\///g' | xargs -I {} git push origin :{}
标签管理
添加一个带注解的'v1.0'标签
$ git tag -a v1.0
推送本地tag到远程
$ git push --tags
获取远程tag
$ git fetch origin tag <tagname>
删除远程tag标签
$ git push origin --delete tag <tagName>