git config
- 带有
--system
选项时,从/etc/gitconfig
读写配置; - 带有
--global
选项时,从~/.gitconfig
或者~/.config/git/config
读写配置。只针对当前用户; - 默认使用仓库的git目录中的config文件
.git/config
。
git config --list
列出所有配置。
git config --global user.name "John Doe"
在当前用户设置中设置用户信息。
git config --global user.email "johndoe@example.com"
在当前用户设置中设置用户邮件地址。
git config --global alias.co checkout
为checkout
创建一个别名。
git config --global alias.last "log -1"
创建last
别名用于显示最后一次提交。
git config --global alias.unstage 'reset HEAD --'
创建unstage
别名用于取消文件暂存。
git config --global alias.visual '!gitk'
创建一个外部命令的别名。
其它命令参数请执行git config
查看。
git init
初始化仓库,在当前目录下创建一个.git目录。
git clone
克隆现有仓库。
git clone https://github.com/libgit2/libgit2
git status
检查当前文件状态。
git status -s
状态简览。
git add
跟踪新文件。
git add README
git diff
查看未暂存的文件更新了哪些部分。
git diff --staged
查看已暂存的文件更新了哪些部分。
git commit
提交更新。
git commit -m "Story 182: Fix benchmarks for speed"
提交更新和标注。
git commit -a -m "added new benchmarks"
跳过暂存步骤,直接把已跟踪过的文件暂存并提交。
git commit --amend
上一提交有漏掉的文件没有添加,添加后执行此命令重新提交。
git rm
删除本地文件和仓库中的文件,且不再纳入版本管理。
git rm --cached README
删除仓库中的文件不再纳入版本管理,但保留本地文件。
git rm log/\*.log
删除log目录下所有后缀为.log的文件。
git mv
移动文件。
git mv README.md README
相当于三个操作:
$ mv README.md README
$ git rm README.md
$ git add README
git log
查看提交历史。
git log -p -2
查看最近两次提交,显示每次提交的内容差异。
git log --stat
显示简略的统计信息。
git log --pretty=oneline
每个提交放在一行显示。
--pretty
选项完整内容请参考帮助文档git help log
。
git log --oneline --decorate
查看各个分支当前所指的对象。
git reset
取消暂存的文件。
git reset HEAD README.md
git reset --hard HEAD^
将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。^表示前一个提交。
git checkout
撤消对文件的修改。
git checkout -- README.md
该命令比较危险,慎用。
git checkout -b version2 v2.0.0
在特定的标签上创建一个分支并检出。
git checkout testing
切换到testing
分支。
git remote
查看远程仓库。
git remote -v
显示仓库简写和对应的URL。
git remote add pb https://github.com/paulboone/ticgit
添加一个远程仓库。
git remote show origin
查看远程仓库。
git remote rename pb paul
远程仓库重命名。
git remote rm paul
删除远程仓库。
git fetch
从远程仓库拉取。
git fetch origin
将远程仓库的数据拉取到本地仓库,不会合并或修改你当前的工作。
git fetch --all
抓取所有远程仓库。
git pull
自动抓取然后合并远程分支到当前分支。
git push
推送到远程仓库。
git push origin master
git push origin v1.5
将该标签推送到远程服务器。
git push origin --tags
把所有不在远程仓库服务器上的标签全部传送到那里。
git push origin --delete serverfix
删除一个远程分支。
git tag
列出标签。
git tag -l "v1.8*"
列出开头是v1.8
的所有标签。
git tag -a v1.4 -m "my version 1.4"
添加附注标签。
git tag v1.4-lw
添加轻量标签。
git tag -a v1.2 9fceb02
针对已提交的内容打标签。
git show
显示标签查看标签信息与对应的提交信息。
git merge
将命令指定的目标分支与当前分支合并。
git branch
新建分支。
git branch hotfix
在当前提交的快照上新建一个分支。
git branch -d hotfix
删除分支。
git branch -v
查看每个分支的最后一次提交。
git branch -vv
显示更多信息。
git branch --merged
查看所有已合并的分支。
git branch --no-merged
查看所有未合并的分支。
git branch -D hotfix
强制删除该分支并丢弃那些工作。
git revert
git revert HEAD
删除最后一次远程提交,但是会生成一次新的提交。
git revert <commit id>
回滚某次提交。
Tips
恢复工作区删除的所有文件
git ls-files -d | xargs -i git checkout {}