1.假如你在一个分支,非master分支,例如avatar,在你修改之前一定要 get merge master,git pull,再开始写代码.如果改好了,也要先git merge master,git pull,再提交分支的内容
2.如果提交代码?如果你在master分支,记得在提交之前一定要先pull
git pull
git add -A
git commit -m "这里写你更改了的东西就可以"
git push
3.如果你在分支avatar上,有人在master上提交了代码你想更新master上的东西到自己的分支怎么做?
首先你要提交自己分支的东西,
git add -A
git commit -m "这里写你更改了的东西就可以"
git push origin avatar
现在你切到master 分支上:
git checkout master
git pull
然后再切到avatar的分支上进行merge
git checkout avatar
git merge master
再git pull一下写你的代码,每次在分支上写东西 ,记得先merge master上的东西
4.please enter a commit to explain why this merge is neccessary.
先输入 i
再 输入Esc
最后输入:wq 按enter退出.
不要被这个吓到,只是问你为什么要合并,其实不用解释,直接退出就好了,这里要注意的是,必须你的输入法是英文的,不然一直都没有办法打出这个:wq
5.怎么删本地分支和远程分支?
1.首先你确保自己在master分支上,git branch -a
你就可以看到远程和本地所有的分支了.
2.删除本地的分支 git branch -d avatar
这里avatar就是我的一个分支,当然删除本地的有可能说,你本地没有这个分支,也是很有可能的,你不用管他~
3.删除远程的分支 git push origin --delete avatar
这就是删除了远程的啦~
4.最后你可以查看一下,你的要删的分支是不是删掉了 git branch -a
git 就用到这么多了~还有一个stash ~~~有用到的宝宝帮我补充下哦-_-
6.no changes added to commit
遇到这个我是试了很多网上的例子,但是再次提交还是会出现这句话.
为什么出现这个,我的:因为在master上有人建了一个和我分支一样的文件,我把master上的合并过来就这样了.所以我把那个新加的文件先复制保存起来到其他地方,再删除项目里面的,在提交,再把这个文件放到项目里,再次提交就好了
7.error: The branch 'chooseDetail' is not fully merged.
If you are sure you want to delete it, run 'git branch -D chooseDetail'.
意思是你在分支上修改的东西还没有合并到master,要不要删除,当你那条分支上的东西确实没有用了,很久了,你又在别的分支去做这个修改的时候,你可以删
git branch -D chooseDetail就可以了
8.error: refs/heads/awardIssue does not point to a valid object!
等待解决
9每次提前之前一定要拉代码,合并之后一定要提交
10 当gitlab上有revert的代码,怎么把它放出来?
有种情况就是同事的代码要急着上线 我的也上了测试,但是我的还没有测,所以同事先在我的commit上revert一下
所以等我需要的时候放出来这个revert的代码
直接用 git revert + 某个commit(这个revert掉的commit)
11 git stash
git stash 是将本地的代码存储到暂存区,和分支一点关系都没有,
假如我在a分支上git add . /git stash 了代码aa,我在b分支上git add ./git stash了代码段bb
这时候我切到a分支,进行git stash pop,是在a分支上拿到了代码段bb,
这明显不是我们想要的结果,也说明了不管你做了多少次存储的工作,git stash pop永远都是拉取最新的一次存储,
如果你想在切到a分支上拿到aa的代码段怎么操作,git stash list/git stash apply "stash@{n}",这里要注意的是释放指定暂存区的代码,在mac上是执行 git stash list/git stash apply stash@{n},
而在windows上执行git stash list/git stash apply "stash@{n}",windows需要双引号.
存储:
git add .
git stash
释放最新一次
git stash pop
释放指定:
git stash list
git stash apply "stash@{n}"或者git stash apply stash@{n}
12 怎么切到某次commit ?
先去gitlab找到commit id , git checkout 4c90ffda48a3c4a4ec56511bce3561a0a69a9214
13.批量删分支
首先你先查看一下你的现在有哪些分支,我建议你在dev的公共分支上去做这个操作
git branch -a
然后你找到共同关键词,比如我只想留develop和master,我其他的分支都有共同的feature单词
那我就执行
git branch | grep feature* | xargs git branch -d
这时候可能会提示
error: The branch 'feature_medalv050' is not fully merged.
If you are sure you want to delete it, run 'git branch -D feature_medalv050'.
error: The branch 'feature_report_manage0909' is not fully merged.
表示的就是有的feature分支并没有合并到develop,你还要不要删?如果要删就执行git branch -D feature_medalv050,当然其他的后面的也会因为你不做这个操作而卡住不会按照顺序去删你的分支
例如,我现在指向保留dev和master,其他的别给我提示,我通通不想要,这时我找到了我其他分支的共同点,有个下划线,我这里也用的大D
$ git branch | grep _* | xargs git branch -D
好好生活-_-