Git命令
- 安装Git
-
$ git config --global user.name "Yoour Name" $ git config --global user.email "email@example.com"
-
-
注意
git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。 - 创建版本库
-
-
$ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit
-
- 通过git init命令把这个目录编程Git可以管理的仓库:
-
$git init
-
-
用命令git add告诉Git,把文件添加到仓库:
-
$ git add readme.txt
-
-
用命令git commit告诉Git,把文件提交到仓库:
-
$ git commit -m "wrote a readme file"
-
- 版本回退
- git 仓库状态:
-
$ git status
-
-
查看修改详情:
-
$ git diff
-
-
查看日志:
-
$ git log $ git log --pretty=oneline
-
-
回退到上一个版本号:
-
$ git reset --hard HEAD^ $ cat readme.txt
-
-
指定回到某个版本:
-
$ git reset --hard commit id $ cat readme.txt
-
-
-
$ git reflog
-
- 管理修改
- 查看工作区和版本库里面最新版本的区别:
-
$ git diff HEAD -- readme.txt
-
- 撤销修改
- 丢弃工作区的修改:
-
$ git checkout -- readme.txt
-
-
回退版本\把暂存区的修改回退到工作区,HEAD(最新版本):
-
$ git reset HEAD readme.txt
-
- 删除文件
- 从版本库中删除文件:
-
$ git rm test.txt
-
- 添加远程库(github)
- 关联远程仓库:
-
$ git remote add origin git@github.com:AnswerLiu/learngit.git
-
-
把本地内容推送到远程仓库:
-
$ git push -u origin master
第一次加“-u”参数,是为了把本地master分支和远程master分支关联起来,以后的推送或拉取可以不需要。-
$ git push origin master
-
- 远程库克隆(github)
-
-
$ git clone git@github.com:AnswerLiu/test.git $ cd test $ ls README.md
-
- 创建与合并分支
- 查看分支:
-
$ git branch
-
- 创建分支:
-
$ git branch <name>
-
-
切换分支:
-
$ git checkout <name>
-
-
创建+切换分支:
-
$ git checkout -b <name>
-
- 合并某分支到当前分支:
-
$ git merge <name>
-
-
删除分支:
-
$ git branch -d <name>
-
- 解决冲突(手动解决)
- 查看分支合并图:
-
$ git log --graph $ git log --graph --pretty=oneline --abbrev-commit
-
- 分支管理策略
- --no-ff合并分支:
-
$ git merge --no-ff -m "xxxx" <name> $ git log --graph --pretty=oneline -abbrev-commit
-
- Bug分支
- 暂时“储藏”工作现场:
-
$ git stash
-
-
查看被“储藏”的工作现场:
-
$ git stash list
-
-
恢复被“储藏”的工作现场:
-
$ git stash apply $ git stash drop
推荐使用:-
$ git stash pop
-
-
恢复指定的stash:
-
$ git stash apply stash@{0}
-
- Feature分支
- 强行删除分支:
-
$ git branch -D <name>
-
- 多人协作
- 查看远程库信息:
-
$ git remote
-
- 显示详细信息:
-
$ git remote -v
-
- 本地创建远程分支:
-
$ git checkout -b dev origin/dev
-
-
抓取最新分支:
-
$ git pull
-
-
git pull失败,将本地分支和远程分支创建联系:
-
$ git branch --set-upstream branch-name origin/branch-name
-
- 创建标签
- 创建新的标签:
-
$ git tag <name>
-
- 查看所有的标签:
-
$ git tag
-
- 将之前没有标签的commit打上标签:
-
$ git tag <name> commit id
-
-
查看标签的详细内容:
-
$ git show <tagname>
-
-
创建带有说明的标签,用-a指定标签名,-m指定说明文字:
-
$ git tag -a <tagname> -m "说明文字" commit id
-
-
-s用私钥签名一个标签:
-
$ git tag -s <tagname> -m "说明文字" commit id
-
- 操作标签
- 删除标签:
-
$ git tag -d <tagname>
-
- 推送标签到远程:
-
$ git push origin <tagname>
-
- 全部推送标签到远程:
-
$ git push origin --tags
-
-
删除远程标签:
-
先从本地删除 $ git tag -d <tagname> 再从远程删除 $ git push origin :refs/tags/<tagname>
-
- git显示颜色:
-
$ git config --global color.ui true
-
- 忽略特殊文件
- 在Git根目录下创建.gitignore文件,然后把.gitignore也提交到Git
- 强制提交被忽略的文件:
-
$ git add -f <name>
-
- 检查.gitignore规则:
-
$ git check-ignore -v <name>
-
- 配置别名
- 配置别名:
-
$ git config --global alias.<别名> <name>
-
-
常用别名:
-
$ git config --global alias.st status $ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch $ git config --global alias.unstage 'reset HEAD' $ git config --global alias.last 'log -1' $ 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配置文件都在.git/config文件中
当前用户的配置文件在用户主目录下的一个隐藏文件/gitconfig
- ……