常用指令
(1) 创建仓库
git init
(2)把文件添加到版本库
git add <file-name>
(3)提交文件到仓库
git commit -m "注释信息"
(4)查看文件的变化详情
git diff <commit-ID> <commit-ID>
(5)查看文件的commit记录
--pertty=oneline简化输出
git log [--pretty=oneline]
(6)HEAD
- HEAD^(上一个版本)
- HEAD^^(上上个版本)
- HEAD~100(上100个版本)
(7)回到指定版本(版本回退)
git reset --hard <commit-ID>
(8)查看历史命令
git reflog
(9)查看工作区和版本库里最新版本的区别
git diff HEAD -- <file-name>
(10)撤销工作区的修改
git checkout -- <file-name>
(11)撤销暂存区的内容到工作区
git reset HEAD <file-name>
(12)从版本库中删除文件
git rm <file-name>
(13)添加远程仓库到本地
git remote add origin git@sxxxx.com:user-name/som.git
(14)推送本地分支内容到远程仓库
第一次
git push -u origin master
以后
git push origin master
(15)克隆远程仓库到本地
git clone git@github.com:user-name/something.git
(16)创建并切换到新分支
git checkout -b dev
(17)查看分支
git branch
(18)合并指定分支到当前分支
git merge dev
(19)创建分支
git branch <name>
(20)删除分支
git branch -d <name>
(21)切换分支
git checkout <name>
(22)查看分支合并图
git log --graph
git log --graph --pretty=oneline --abbrev-commit
(23)合并分支时添加注释信息
git merge --no-ff -m "merge with no-ff" dev
(24)保存工作区状态
git stash
(25)查看保存的工作区状态列表
git stash list
(26)恢复保存的工作区状态
git stash apply # 恢复后stash内容不删除
git stash pop # 恢复的同时删除stash内容
(27)删除保存的工作状态
git stash drop
(28)复制分支的特定commit到当前分支
git cherry-pick <commit-ID>
(29)丢弃一个没有合并的分支
git branch -D <name>
(30)查看远程分支
git remote -v
(31)推送本地分支
git push origin <branch-name>
(32)在本地创建和远程分支对应的分支
git checkout -b <branch-name> origin/<branch-name>
(33)建立本地分支和远程分支的关联关系
git branch --set-upstrem <branch-name> origin/branch-name
(34)从远程抓取分支
git pull
(35)把本地未push的分叉提交历史整理成直线
git rebase
(36)给commit打标签
git tag <tag-name> [commit-id]
(37)查看标签
git tag
(38)查看标签信息
git show <tag-name>
(39)给标签添加说明
git tag -a <tag-name> -m "标签说明" <commit-id>
(40)删除标签
git tag -d <tag-name>
(41)推送标签到远程仓库
git push origin <tag-name>
(42)一次性推送全部尚未推送到远程的本地标签
git push origin --tags
(43)删除远程仓库的标签
git tag -d <tag-name> # 先删除本地标签
git push origin :refs/tags/<tag-name> # 再删除远程标签
(44)删远程关联仓库
git remote rm <origin-name>
(45)配置git颜色
git config --global color.ui true
(46)忽略某文件时,需要编写.gitignore
(47)别名配置
git config --global alias.st status
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
(48)配置文件
- 每个仓库的.git/config
- 全局的在$HOME/.gitconfig
- 删除别名直接在对应的配置文件中删除
(49)参考链接