1、配置工具
$ git config --global user.name "[name]"
设置用户名
$ git config --global user.email "[email address]"
设置邮箱
$ git config --global color.ui auto
自动配置命令行的输出颜色
$ git config --global color.ui true
全部打开颜色配置
$ git config --global color.ui false
全部关闭颜色配置
2、创建存储库
$ git init [project-name]
创建本地库,项目名(project-name)可选
$ git clone [url]
克隆远程库(包括整个版本历史)
3、修改后如何提交
$ git status
列出所有准备要提交的新文件或修改文件
$ git diff
显示还没有执行“git add [file]”的文件中的差异,如果已经执行了“git add [file]”,将不会再打印出来,因此“git diff”一般在“git add”之前使用
$ git add [file]
添加需要提交的文件
$ git reset [file]
撤销操作“git add [file]”,回到执行“git add [file]”之前的状态
$ git diff --staged
显示已经执行了“git add [file]”的文件和上一个版本的差异,如果没有执行“git add [file]”,将不会打印出来,因此“git diff --staged”在“git add [file]”之后使用。
$ git commit -m "[descriptive message]"
提交已经执行“git add [file]”的文件,并更新版本。
4、分支操作
$ git branch
列出当前存储库中的所有本地分支
$ git branch [branch-name]
创建一个新分支branch-name
$ git checkout [branch-name]
切换到指定的分支branch-name并更新工作目录
$ git merge [branch]
将指定分支branch的历史记录合并到当前分支
$ git branch -d [branch-name]
删除指定的分支branch-name
5、删除、重命名文件
$ git rm [file]
删除文件,删除后可以通过git checkout [file]恢复,或git commit提交。
$ git rm --cached [file]
从版本控制中删除文件,但本地的没有删除,这点与“git rm [file]”不同
$ git mv [file-original] [file-renamed]
更改文件名并准备提交
6、查看历史更改记录
$ git log
列出当前分支的版本历史
$ git log --follow [file]
列出文件的版本历史,包括该文件重命名之前的版本历史,但是file必须是现在的名字,即重命名之后的名字
$ git diff [first-branch]...[second-branch]
显示两个分支之间的内容差异
$ git show [commit]
显示指定提交版本的更改内容
[commit]是提交时生成的版本号,如下面的1b2d817aa982a91b3a16b7f02a990a8f72fe4e2d
commit 1b2d817aa982a91b3a16b7f02a990a8f72fe4e2d
Author: laoer <>
Date: Tue Aug 21 09:44:29 2018 +0800
hello
7、忽略临时文件、目录等
在工程目录(与.git同级目录)中创建“.gitignore”文件。.gitignore文件中写入需要忽略的文件和目录,每行一个,支持正则表达式。编辑完.gitignore需要使用git add和git commit提交。下面是一个常用的.gitignore文件
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
可以使用下面命令来查看,被忽略掉的文件或目录:
$ git ls-files --other --ignored --exclude-standard
8、临时保存和恢复
如果代码写的一半,需要保存后切换到其它分支上去,但是又不想commit到版本库中,以免污染了提交日志,这时就要用到“git stash”
$ git stash
临时保存更改内容
$ git stash list
列出临时保存的更改内容
$ git stash pop
恢复临时保存的更改内容
$ git stash drop
删除临时保存的更改内容
9、重新提交
$ git reset [commit]
恢复指定版本号commit后将恢复至指定版本,但本地内容不会更改,重新提交后,指定版本号以后的记录将会丢弃。最好不要使用。
$ git reset --hard [commit]
这将会删除所有记录,包括本地的内容。严禁使用
10、多人协同工作
$ git branch -a
查看所有分支,红色的是远程分支
git fetch
获取远程分支
git diff HEAD FETCH_HEAD
查看本地和远程的区别
git merge origin/master
合并
git push -u origin master
将本地的master分支推送到origin主机