git常用命令整理
用了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/。