本文共 2962 字,大约阅读时间需要 9 分钟。
该命令用于查找git的提交记录,也可以添加参数p,查看详细的提交个更改记录
git log -p
查看某个文件的提交历史
git log -p filenname
可以查看当前是在哪一个branch上。
git branch -a // 显示所有的分支
切换branch,我们如果需要切到一个远程的branch,同时新建一个本地的branch,可以用下面的命令
git checkout -b myBranch remotesBranch
向本地仓库添加修改文件
向本地仓库提交本次修改内容,如果需要添加自己的邮箱等信息,可以用一下命令:
git commit -s
可以用一下命令:
git format-patch -n // 从当前提交点往下产生n个patch
对某个commit id 生成patch
git format-patch -1 commit_id
查看标签,也可以用一下命令:
git tag -l
添加标签:
git tag -a myTag -m "my note"
提交到远程仓库
git push origin -tags
删除标签:
git tag -d myTag
删除远程标签:
git push origin :refs/tags/myTag//注意冒号前为空
切换 tag
git checkout myTag如果要在 tag 代码的基础上做修改,并且建一个新的分支: git checkout -b branch_name tag_name
查看某个tag:
git show myTag
将本地仓库代码上传到远程仓库。
如果提示push失败,没有远程仓库,需要重新设置对应关系:git branch --set-upstream myBranch remotes/origin/targetBranch
如果你在本地有仓库,想将他push到远程的仓库,远程的也需要新建,可以用一下操作
首先新建一个git 仓库在本地git init
然后添加自己的文件并且提交
git add XXXgit commit -s -m "******"
然后重点来了:
git remote add origin XXX@****要建立远程仓库的地址****PS:git remote add origin git@xx.xx.xx.xx:user/xx/xx/yourCodeDirgit push origin 本地分支:远程分支
这个命令在我们的代码管理中非常实用。如果我们在版本1.0 的基础上开发了版本2.0,如果在版本2.0的上面发现了1.0的某些bug,进行了修复。如果在版本1.0的上面也需要这个patch,那么我们就可以直接用这个命令。
为了保险可以在1.0版本的基础上产生一个1.1版本。git checkout -b version1.1 version 1.0
然后将 2.0上的patch 89d765sg 3567809g cherry-pick 到1.1上面
git cherry-pick 89d765sg 3567809g
然后就可以了,是不是很方便呢。
这个命令也是我们经常用到的
场景1.当我们的开发版本(myDev)要和master 分区合并的时候,可以如下操作:git checkout myDevgit pullgit checkout mastergit merge myDevgit push -u origin master
场景2. Master 分区修复了一个bug,我们需要merge到,我们正在开发的版本上面:
git checkout master git pull git checkout myDevgit merge master git push -u origin myDev
在merge的过程中会出现一些confilct错误,这个时候需要找到相应的文件进行手动更改。
<<<<<<< HEAD要合并的代码=======本地代码>>>>>>> fg44s4h3af3dgh4as3fd
我们一般利用git reset 命令撤销commit 记录。下面就介绍下几个经常用的命令。
git reset 我们介绍三个命令,应该会有一款适合你。这个命令用于重置stage区和工作目录,属于最狠的一个,在用他之前一定要考虑清楚
如果你想清除上次的提交记录,可以用如下命令:git reset --hard HEAD^
这个命令可以保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区
命令如下git reset --soft HEAD^
保留工作目录,并清空暂存区
git reset HEAD^orgit reset --mixed HEAD^
有时候我们提交了好几次代码,但是我们想删掉中间的一次提交,这样我们就可以用到这个命令来操作。
比如有以下提交记录:commit 3sd50a47eda59fff94df2e10052f4a96b1a5c4106Author: xxxxDate: Thu Feb 7 21:44:41 2019 +0100 Third commitcommit asdfdsa8cf0ee61de108d6d58e0a62db583bAuthor: xxxDate: Fri Jan 4 12:56:09 2019 -0800 second commitcommit asf91e626ddsadsa96a24995cff5597d36fAuthor: xxxxDate: Thu Apr 11 10:14:59 2019 -0700 First commit
现在我们想删掉第二个commit,我们需要先rebase 到,第一次提交记录那边,命令如下:
//git rebase -i commit_id(第二次之前的id)git rebase -i asf91e626dd
然后再vim编辑器中将第二次提交记录前面的pick改为drop之后保存就可以了。
drop asdfdsa8cf second commit //原来为pick, pick-> droppick 3sd50a47eda5 Third commit
如果有错误,欢迎大家回复指正啊!
使用过程出现ERROR
1.fatal: Unable to create 'XXXX/.git/index.lock': File exists.解决方案:找到.git/index.lock并删除它
转载地址:http://bgmvi.baihongyu.com/