关注公众号【罗米笔记】
前言
在团队工作时,因为需要几个人或者十几个人同时对代码库进行更改,或者操作不同的分支,如果一个同事不小心,就会造成很多的麻烦。所以整理了一份笔记,自己参考也能帮助有需要的朋友们
新建
git init
git clone <url>
配置
git config --list # 显示当前的Git配置
# 设置提交代码时的用户信息
git config [--global] user.name "<name>"
git config [--global] user.email "<email address>"
撤销
# 恢复暂存区的指定文件到工作区
git checkout [file]
# 恢复某个commit的指定文件到暂存区和工作区
git checkout [commit] [file]
# 恢复暂存区的所有文件到工作区
git checkout .
# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset [file]
# 重置暂存区与工作区,与上一次commit保持一致
git reset --hard
# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset [commit]
# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
git reset --hard [commit]
# 重置当前HEAD为指定commit,但保持暂存区和工作区不变
git reset --keep [commit]
# 新建一个commit,用来撤销指定commit
# 后者的所有变化都将被前者抵消,并且应用到当前分支
git revert [commit]
# 暂时将未提交的变化移除,稍后再移入
git stash
git stash pop
增加和删除本地文件
# 添加指定文件到暂存区
git add ./[file]
# 删除工作区文件
git rm [file1] [file2]
代码提交
# 提交暂存区到仓库区
git commit -m <msg>
git branch # 列出所有本地分支
git branch -r # 列出所有远程分支
git branch -a # 列出所有本地分支和远程分支
git branch <branch-name> # 新建一个分支,但依然停留在当前分支
git checkout -b <branch> # 新建一个分支,并切换到该分支
git merge <branch> # 合并指定分支到当前分支
git cherry-pick <commit> # 选择一个commit,合并进当前分支
git branch -d <branch-name> # 删除分支
git push origin --delete <branch-name> # 删除远程分支
标签
git tag # 列出所有tag
git tag <tag> # 新建一个tag在当前commit
查看信息
git status # 显示有变更的文件
git log # 显示当前分支的版本历史
git diff # 显示暂存区和工作区的差异
git diff HEAD # 示两次提交之间的差异
远程同步
git fetch [remote] # 下载远程仓库的所有变动
git remote -v # 显示所有远程仓库
git pull # 取回远程仓库的变化,并与本地分支合并
git push [remote] [branch] # 上传本地指定分支到远程仓库
以上的命令在工作中基本上都会用到,但是如果想要在开发多分支,或者团队很多分支的时候建议使用sourceTree