git常用命令整理

2018年12月11日版本工具0

用了git这么多了,把常用的一些命令做些记录。

代码提交

提交到暂存区

git add fileName

提交到本地仓库

git commit -m '此处填写提交日志'

提交到远程仓库

以提交到master仓库为例,

git push origin master

撤销提交

仅修改,未add

git checkout -- fileName

如果想要放弃所有的文件修改,可以使用 git checkout . 命令。

此命令用来放弃掉所有还没有加入到缓存区( git add 命令)的修改。但是此命令不会删除掉刚新建的文件。因为新建的文件还没有加入到 git 的管理系统中,对于git来说是未知的,所以无法删除。

已add,未commit

git reset HEAD fileName

放弃所以的add文件,可以使用 git reset HEAD . 命令。

此命令是用来清除 git对于文件修改的缓存。相当于撤销 git add 命令所添加的文件。在使用此命令后,本地的修改并不会消失,只是清除了缓存区的状态,需要继续用git checkout -- fileName来放弃本地的修改。

已commit

git reset --hard HEAD^ 该命令用来回退到上一次commit的状态。当要回退到任意版本时,可以使用git reset --hard  commitid 命令。commitid的话,可以通过git log命令来查看。commitid的话,不需要输入全部的值,输个差不多前四五位就行了。

分支管理

创建分支

git branch branchName

git branch 查看所有本地的分支,带*表示当前工作区位于哪个分支。

切换分支

git checkout branchName

创建并切换到新建的分支

git checkout -b branchName

把dev分支的修改内容合并到当前分支

git merge dev

查看远程仓库的分支情况

git branch -r

将新分支发布到远程分支上

git push origin newBranchName

如果省略远程分支名,则表示将本地分支推送到与之存在"追踪关系"的远程分支(通常同名),如果该远程分支不存在,则会被新建。当然也可像下面这种方式一样写明本地与远程的分支名。

git push origin <本地分支名>:<远程分支名>

拉取远程分支并创建本地分支

  • checkout方式
git checkout -b 本地分支名 origin/远程分支名

这种方式新建的本地分支会和远程分支建立起映射关系。

  • fetch方式
git fetch origin 远程分支名:本地分支名

采用此种方法建立的本地分支不会和远程分支建立映射关系。

删除一个远程分支

git push origin :branchName (分支名前的冒号代表删除)

重命名本地分支

git branch -m | -M oldBranchName newBranchName

如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。

删除本地分支

git branch -d | -D branchName

-D用来强制删除本地仓库中的分支。

删除远程分支

git branch -d -r branchName

代码更新

pull方式更新代码

git pull origin <远程分支名>:<本地分支名>

比如更新master分支的代码,只要这样就行了,git pull origin master 如果远程分支(next)要与某个分支合并,可以再冒号后面加上该分支名:

git pull origin next:master

若是合并到当前分支,可以省略冒号后的本地分支名,

git pull origin next

fetch与merge方式

git fetch origin master
查看fetch后的代码的区别:git diff origin/master
git merge origin/master

先用fetch拉取远程仓库中的代码,然后可用diff查看异同,最后用merge合并。

两者区别

git pull相当于git fetch加git merge.

冲突处理

当多个人同时修改同一个文件时,很容易出现冲突问题:

首先,先将服务器代码拉下来,然后手动修改冲突的地方,再add并commit,最后push到远程仓库去。命令的话就是这样,

git pull origin master
手动修改重提的部分
git add fileName
git commit -m '内容'
git push origin master

总结

常用的先整理到这,最后,给个不错的学习git的网址:https://learngitbranching.js.org/