一、配置
1. 配置用户名,邮箱及文本编辑器
$ git config --global user.name "name"
$ git config --global user.email email
$ git config --global core.editor emacs
2. 检查配置信息或某项配置
$ git config --list
$ git config <key>
二、基础
1. 获取帮助
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
2. 获取仓库
(1)在现有目录中初始化仓库(进入项目目录下输入该命令,在项目下创建一个.git文件夹)
$ git init
(2) 克隆现有仓库:该命令从远程仓库拉取下所有数据放入 .git
文件夹,然后从中读取最新版本的文件的拷贝。
$ git clone [url] [name]
3. 检查当前文件状态
$ git status
$ git status -s //状态简览
M [修改过的未放入暂存区的文件]
M [修改过的放入暂存区的文件]
MM [工作区和暂存区均有修改记录的文件]
A [新添加到暂存区中的文件]
?? [新添加的未跟踪文件]
4. 跟踪新文件:执行该命令后再执行git status会看到一行Changes to be committed,表示文件处于已暂存状态;
暂存已修改文件:当修改已被跟踪的文件后执行git status会看到一行 Changes not staged for commit
表明已跟踪文件被修改后未存入暂存区,此时需执行git add命令。
$ git add [文件或目录的路径]
$ git add . //提交被修改的和新建的文件,但不包括被删除的文件
$ git add -u //提交所有变化的文件
$ git add -A //提交已被修改和已被删除文件,但是不包括新的文件
5. 查看已暂存和未暂存的修改
$ git diff //查看工作目录中当前文件和暂存区域快照之间的差异
$ git diff --staged //查看已暂存的将要添加到下次提交里的内容
6. 提交更新(提交的是暂存区的)
$ git commit -m "提交信息" //提交暂存区文件
$ git commit -a -m "提交信息" //暂存所有已被跟踪文件并提交
7. 移除文件
$ git rm [文件名] //将文件从已跟踪文件清单删除同时删除工作目录的文件
$ git rm -f [文件名] //删除前修改并存入暂存区的文件需强制删除
$ git rm --cached [文件名] //将文件从已跟踪文件清单删除但不删除工作目录的文件
8. 对文件改名
$ git mv [旧文件名] [新文件名]
9. 查看提交历史
$ git log
$ git log -p -num //查看最近num次的提交内容差异
$ git log --stat //查看每次提交的简略的统计信息
$ git log --oneline --decorate //查看各分支所指对象
$ git log --oneline --decorate --graph --all //查看项目分叉历史
10. 取消暂存的文件
$ git reset HEAD [文件名]
11. 撤销对文件的修改
$ git checkout -- [文件名]
12. 查看远程仓库
$ git remote
$ git remote show [remote-name] //查看远程仓库更多信息
13. 添加远程仓库
$ git remote add [remote-name] [url]
14. 从远程仓库获得数据
$ git fetch [remote-name]
15. 推送到远程仓库
$ git push [remote-name] [branch-name]
16. 重命名远程仓库
$ git remote rename [old-name] [new-name]
17. 移除远程仓库
$ git remote rm [remote-name]
18. 列出标签
$ git tag
19. 创建标签
$ git tag -a [tag-name] -m [information] //创建附注标签
$ git tag [tag-name] //创建轻量标签
$ git tag -a [tag-name] [校验和] //后期打标签
$ git checkout -b [branch-name] [tag-name] //在特定分支上创建标签
20. 查看标签和对应提交信息
$ git show [tag-name]
21. 共享标签
$ git push [origin] [tag-name] //
$ git push [origin] --tags //共享所有标签
22. git别名
$ git config --global alias.[别名] [命令语句]
三、分支
1. 创建分支
$ git branch [branch-name]
2. 切换分支
$ git checkout [branch-name]
$ git checkout -b [branch-name] //创建分支并切换到该分支上
3. 合并分支
$ git merge [branch-name]
4. 删除分支
$ git branch -d [branch-name]
$ git branch -D [branch-name] //强制删除分支
5. 查看分支
$ git branch -v //查看每个分支最后提交
$ git branch --merged //查看哪些分支已合并到当前分支
$ git branch --no-merged //查看所有包含未合并工作的分支
6. 跟踪分支
$ git checkout --track [remote-name]/[branch-name]
$ git checkout -b [local-branch-name] [remote-name]/[branch-name]
$ git branch -vv //查看设置的所有跟踪分支
7. 删除远程分支
$ git push origin --delete [branch-name]
8. 将特性分支变基到目标分支
$ git rebase [base-branch] [topic-branch]