最全GIT笔记!!建议收藏!
都是干货!!!反复观看 !!
一、配置
// 查看当前Git配置
$ git config --list
// 增加[--global]即为全局设置
// 修改Git配置
$ git config -e [--global]
// 设置提交代码的用户名信息
$ git config [--global] user.name "name"
$ git config [--global] user.email "example@address.com"
二、初始化
// 在当前目录,创建一个Git仓库
$ git init
// 创建一个新目录初始化为Git仓库
$ git init [project-name]
// 下载整个项目和它的所有版本代码
$ git clone [url]
三、添加和提交*
1.git add
// 将当前目录的所有文件添加到暂存区
$ git add .
// 将指定文件添加到暂存区
$ git add [file1] ...
// 将指定目录及其子目录添加到暂存区
$ git add [dir1]
// 分次添加同一文件的多次变更(每次都会要求确认)
$ git add -p
2.git commit
// 提交工作区上次commit的变更后到仓库区
$ git commit -a
// 提交时显示所有的变更信息
$ git commit -v
// [message]是对本次提交的一些备注信息
// 提交暂存区文件到仓库区
$ git commit -m [message]
// 提交暂存区指定文件到仓库区
$ git commit -m [file1] ... [message]
// 替代上次的commit,若代码未变更则改写上次commit信息
$ git commit -amend -m [message]
// 改写指定文件上次的commit信息
$ git commit -amend [file1] ...
四、删除和修改*
// 删除工作区指定文件,此次更改存入暂存区
$ git rm [file1] ...
// 停止追踪指定文件,该文件会保存到工作区
$ git rm --cached [file]
// 更改指定文件名称,将此次更改存入暂存区
$ git mv [origin-file] [rename-file]
五、分支操作*
1.git branch
// 显示所有本地分支
$ git branch
// 显示所有远程分支
$ git branch -r
// 显示本地分支和远程分支
$ git branch -a
// 创建指定分支,并停留在当前
$ git branch [branch-name]
// 创建一个分支与指定远程分支建立追踪关系
$ git branch --track [branch-name] [remote-branch]
// 在现有分支上与指定远程分支建立追踪关系
$ git branch --set-upstream [branch-name] [remote-branch]
// 删除分支
$ git branch -d [branch-name]
// 删除远程分支
$ git branch -dr [remote-branch]
2.git checkout
// 切换到上一个分支
$ git checkout -
// 切换到指定分支
$ git checkout [branch-name]
// 创建一个分支并切换到指定分支
$ git checkout -b [branch-name]
// 合并指定分支到当前分支
$ git merge [branch-name]
// 将当前分支提交,再以末提交点为新起始,使当前分支合并为其直接下游
$ git rebase <branch>
// 选择一个commit,合并到当前分支
$ git cherry-pick [commit]
六、标签
// 查看本地标签
$ git tag
// 创建指定标签
$ git tag <tag-name>
// 删除指定标签
$ git tag -d <tag-name>
// 查看标签信息
$ git show [tag-name]
// 创建一个新分支指向指定标签
$ git checkout -b [branch-name] [tag-name]
七、查看
1.git log
// 查看变更的文件
$ git status
// 查看当前分支的历史版本
$ git log
// 查看commit历史及每次commit变更的文件
$ git log --stat
// 根据关键词查看提交历史
$ git log -S [keyword]
// 查看指定文件每次的变更
$ git log -p [file-name]
// 查看过去5次的提交
$ git log -5 --pretty --online
// 查看指定文件版本历史,包括文件名
$ git log --follow [file-name]
// 按搜索条件的提交说明,查看某个commit后的所有变动
$ git log [tag] HEAD --grep feature
// 查看某个commit后的所有变动,每个显示一行
$ git log [tag] HEAD --pretty=format%s
// 退回到之前1天的版本
$ git log --before="1 days"
// 显示当前分支最近几次提交信息
$ git reflog
// 按提交次序查看所有提交过的用户
$ git shortlog -sn
// 查看指定文件是何人何时修改过
$ git blame [file-name]
2. git diff*
// 查看工作区和暂存区的差异
$ git diff
// 查看暂存区和上一个commit的差异
$ git diff --cached [file-name]
// 查看工作区与当前分支最新commit的差异
$ git diff HEAD
// 查看两次提交的差异
$ git diff [first-branch] ... [second-branch]
// 查看今日写了多少代码
$ git diff --shortstat "@{0 day ago}"
3.git show
// 显示指定提交的数据和内容变化
$ git show [commit]
// 显示指定提交发生变化的文件
$ git show --name-only [commit]
// 显示提交时指定文件内容
$ git show [commit]:[file-name]
八、撤销/重置
// 撤销指定的commit
$ git revert <commit>
// 重置暂存区指定文件与上次commit保持一致,工作区保持不变
$ git reset [file-name]
// 重置当前分支的指针为指定commit,并重置暂存区,工作区保持不变
$ git reset [commit]
// 重置工作区和暂存区,与上次commit一致
$ git reset --hard
// 重置工作目录中所有未提交的文件修改内容
$ git reset --hard HEAD
// 重置当前HEAD为指定commit,并将工作区和暂存区重置为指定commit一致
$ git reset --hard [commit]
// 重置当前HEAD为指定commit,工作区和暂存区保持不变
$ git reset --keep [commit]
// 恢复暂存区所有文件到工作区
$ git checkout .
// 恢复暂存区指定文件到工作区
$ git checkout [file-name]
// 恢复指定commit的指定文件到暂存区和工作区
$ git checkout [commit] [file-name]
// 恢复指定未提交文件的修改内容
$ git checkout HEAD <file>
// 暂存工作目录
$ git stash
// 恢复暂存工作目录
$ git stash pop
九、远程操作
// 推送所有分支到远程仓库
$ git push [remote] --all
// 强推当前分支到远程仓库(忽略冲突)
$ git push [remote] --force
// 上传本地指定分支到远程仓库
$ git push [remote] [branch-name]
// 上传指定标签
$ git push [remote] [tag-name]
// 上传所有标签
$ git push [remote] --tags
// 删除远程分支或标签
$ git push <remote> :<branch/tag-name>
// 取回远程仓库的变更并合并本地分支
$ git pull [remote] [branch-name]
// 下载远程仓库所有的变更
$ git fetch [remote-name]
// 显示所有远程仓库
$ git remote -v
// 显示指定远程仓库
$ git remote show [remote-name]
// 创建一个新的仓库并命名
$ git remote add [short-name] [url]
非常感谢盆友们看到这里了,点个赞吧!!!180度鞠躬谢谢大家~!要不我就跪下来求你们了~~