git常用,但是有些命令记不住,用的时候就临时根据使用场景google,然后就又忘了。现在总结一波,方便以后查阅。
使用git命令之前,一定要掌握git中几个工作区的概念:

- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
详细的常用命令请查看阮一峰老师的文章,有时间多看看,对于学习git很有帮助 。下面的内容是自己工作中遇到的一些场景,总结一下。
先建好了本地项目,之后需要推到远程仓库
# 如果项目创建时没有初始化为git仓库,需要先执行
$ git init
# init后默认时master分支,如有必要,先创建并切换到自己的分支上
$ git checkout -b myBranch
# 本地仓库关联远程仓库
$ git remote add origin [email protected]:appleshell/learn.git
# 本地仓库代码推送到远程仓库
$ git push origin <本地分支>:<远程分支>clone远程仓库用
git clone [url],clone下来的代码默认分支是master,有时候我们需要clone非master分支的代码
$ git clone -b [branch] [url]从远程仓库获取最新代码合并到本地分支
方式一:
# 拉取远程仓库指定分支代码并合并到本地分支
$ git pull origin [branch]方式二:
# 拉取远程仓库指定分支代码
$ git fetch origin [branch]
# 对比本地分支和远程分支差异
$ git log -p [local_branch]..origin/[remote_branch]
# 合并最新代码到本地分支
$ git merge origin/[remote_branch] 推荐方式二,可以在合并前查看差异,解决冲突;方式一直接合并,没法提前处理冲突。这里需要理解git pull和git fetch的差异
强制用远程仓库代码覆盖本地代码
$ git fetch --all
$ git reset --hard origin/master
$ git pull删除远程分支
# 有必要可以先看一下远程有哪些分支
$ git branch -r
# 删除远程分支
$ git push -d origin [remote_branch]git比较两个分支的文件的差异
# 显示所有有差异的文件列表
$ git diff [branch1] [barnch2] --stat
# 显示指定文件的差异
$ git diff [branch1] [barnch2] [文件路径]
# 显示所有有差异的文件的详细差异内容
$ git diff [branch1] [barnch2]更多有关git diff命令相关的内容,点击这里
修改分支名称
之前创建的分支,现在分支的名称需要改动,你可以在这个分支基础上再创建一个分支,但是也可以直接修改。
# 本地分支名称重命名
$ git branch -m oldName newName如果你的本地分支已经推送到远程仓库
# 重命名远程分支对应的本地分支名称
$ git branch -m oldName newName
# 删除远程分支
$ git push -d origin oldName
# 推送重命名后的分支
$ git push origin newName合并commit
图形化显示git提交历史
$ git log --graph --decorate --pretty=oneline更详细的查看这里