Commit 69ef7458 authored by 刘家荣's avatar 刘家荣 💬
Browse files

11112

parent 91b58aae
Loading
Loading
Loading
Loading
+57 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ commit是指一次更改,一次微小的,或者较大的更改,一次更
注意: 一般新分支的新建,是从已有分支上新建的分支,但这并不代表各个branch上有从属关系。各个branch本质上没有从属关系,\
只有说他们之间互相merge,rebase之类的操作。

***
## local repo 和 staging area

但是这里存在一个问题。有时候网络不好,不能及时查看远程repo的状态。有时候我们想看其他分支的文件,又不想丢失自己在原来的branch上没提交的更改;
@@ -48,8 +49,17 @@ IDEA好像没有add。。。。。

然后一些比较不小的更改,拿不准要不要弄到remote上面,那我们就先commit到本地的仓库,然后先暂时不push上去

重新放这张图,记住这张图

![./img.png](./img.png)

push, fetch, 还有Update (= pull = fetch + checkout), 在Log标签页左侧各个分支那里右键选项里面

commit在整个IDEA窗口的左侧Commit标签页点开,记得勾选文件,写备注,再Commit

读到这里就可以自己发commit提交你的代码了

***
## 三个标签

众所周知每个branch是一串串的commit节点,那么有的时候别人往远程上新push了一次更改,那么我们还没来得及同步,
@@ -73,3 +83,49 @@ emmm这里要重新说明一下,本质上本地和远程的仓库是不必相
他们的branch上面基本上都有相同的commit,可能会有少许不同,也只是可能local领先remote或者remote领先local之类的一些小不同

所以在IDEA的这个标签页里面,这个线路图自动把本地和远程的相同节点合并到一起了

### 示例

我从main分支上开了一个test分支

![](img3.png)

此时,在test分支上,local比remote领先一个节点

![](img4.png)

此时,remote比local领先一个节点

![](img5.png)

这里有点复杂,我把main分支隐藏了,只留下了test,此时本地跟远程的不一样了,产生的分歧会分开画;

这个时候,无论你是fetch还是push,都会要求你进行一次merge或者rebase,合并一下内容,解决内容冲突

rebase不讲了,自己百度

merge就是IDEA把每个文件的文本片段差别在哪里都给你弹窗展示出来,你自己选择保留哪边的文本,还是合一起,然后一个文件一个文件的过,过完就可以merge了

有些情况下,比较简单的冲突,或者没有冲突只是多了几个文件的差别那样的话,merge是可以一键完成的

### 移动标签

移动HEAD,也就是workspace的内容,到其他节点上,用checkout,线路图找节点右键checkout, 

一般checkout到某个分支(本地分支或者远程分支)的标签所在的位置上, 而且一般HEAD都是“指向于”某个分支标签,分支标签再指向具体节点的

如果硬要checkout到没有标签的某个commit节点上,那么就会进入DETACHED HEAD的状态,HEAD不依附于任何分支标签

这是比较危险的状态......我也不知道为什么危险,但是吧,还是及早checkout回某个branch比较好

......

然后是移动local和remote branch的标签,一般的话fetch/push就可以日常的移动他们

然后要随意移动local branch标签的话,右键,Undo commit或者 Reset Current Branch to Here

remote标签?想得美,**remote永远只能前进**

那有错误,想后退,怎么办?

local的话可以右键节点
 No newline at end of file

docs/img3.png

0 → 100644
+18.2 KiB
Loading image diff...

docs/img4.png

0 → 100644
+22.5 KiB
Loading image diff...

docs/img5.png

0 → 100644
+15.2 KiB
Loading image diff...