git的深入淺出-4、git的詳細使用以及各種衝突處理

目錄

 

一、恢復本地工作區

二、刪除文件

三、創建一個臨時暫存區(棧結構存儲暫存區狀態)

四、寫內容到文件中echo

五、.gitignore文件

六、git的備份

八、github上ssh的使用

九、創建個人倉庫

1、創建本地的遠端站點remote add

2、拉去遠端倉庫fetch

3.合併本地和遠端不一致merge

十、GitHub創建及使用分支

十一、fetch和pull的區別

十二、checkeout創建分支

十三、工作衝突

1、不同用戶修改了不同文件

2、不同用戶修改了不同文件

3、不同人修改了同一文件的同一個區域

4、不同人分別變更了同一文件的文件名和文件內容

5、不同人修改了同一文件的文件名


一、恢復本地工作區

重置本地工作區,同git工作區一致

二、刪除文件

三、創建一個臨時暫存區(棧結構存儲暫存區狀態)

將現在暫存區的內容放入到臨時暫存區中

類似於棧的結構

又恢復回來(apply你使用完之後,stash裏面還會存在這個保持的暫存狀態,使用pop之後,就是直接彈出)

四、寫內容到文件中echo

五、.gitignore文件

告訴git倉庫,.gitignore裏面包含的文件不需要加入到git倉庫中

比如說GitHub上面的倉庫裏面就會添加

六、git的備份

git常用的傳輸協議

八、github上ssh的使用

建議去GitHub上看它的官方文檔

在本地創建公鑰和私鑰

生成的公鑰和私鑰

進入到GitHub的個人信息裏面

將我們之前創建的公鑰內存張貼過來

九、創建個人倉庫

創建

倉庫中的功能描述

創建出來之後倉庫裏面會出現一個文件

1、創建本地的遠端站點remote add

2、拉去遠端倉庫fetch

3.合併本地和遠端不一致merge

不改動

通常採用缺省策略(recursive)

4、push到遠端

十、GitHub創建及使用分支

在GitHub上創建分支

模擬兩個人的工作

查看對應分支

切換分支

提交及push到遠端,放入到對應的分支下面(由於我們已經指定了分支以及遠端,所以直接push就可以了)

十一、fetch和pull的區別

1. git fetch:相當於是從遠程獲取最新版本到本地,不會自動merge

git fetch origin master
git log -p master..origin/master
git merge origin/master
    以上命令的含義:
   首先從遠程的origin的master主分支下載最新的版本到origin/master分支上
   然後比較本地的master分支和origin/master分支的差別
   最後進行合併

2. git pull:相當於是從遠程獲取最新版本並merge到本地

git pull origin master

上述命令其實相當於git fetch 和 git merge
在實際使用中,git fetch更安全一些
因爲在merge前,我們可以查看更新情況,然後再決定是否合併

十二、checkeout創建分支

另外一個用戶拉去遠端

查看多出來的分支,本地還沒有,但是已經與遠端的分支建立起來了連接

創建分支

十三、工作衝突

1、不同用戶修改了不同文件

用戶1修改一個readme.md文件

用戶2 這個時候準備push的時候

首先fetch下來遠端的分支

merge遠端分支

保持不變

最後push到遠端

2、不同用戶修改了不同文件

首先用戶1和用戶2都從遠端拉取項目

用戶1先修改問index文件,並且提交上去

然後用戶2修改index文件,push到遠端的時候就會報錯

修改辦法:

用戶2首先從遠端fetch下來修改後的項目(可以時候push,等同於fetch+merge操作)

進行merge合併,使用路徑或者唯一標識 都可以

3、不同人修改了同一文件的同一個區域

兩個用戶同時都更新當前的遠端項目

用戶2首先修改完畢,提交 到遠端

用戶1頁修改了同一處,提交

這個時候用戶1首先得push

當我們push遠端的時候,它會自動merge,但是現在需要我們手動去merge

直接打開衝突文件

head裏面就是衝突文件,需要我們自己來選擇,然後選擇好後刪除head提示就行

查看,提示的意思就是:如果你覺得還是有衝突,就退出merge操作(執行git merge --abort),如果修改完畢就執行提交操作(git commit)

4、不同人分別變更了同一文件的文件名和文件內容

兩個賬號都更新到最新

用戶1更新文件名,並且提交

接着用戶2修改文件內容

提交報錯

用戶2直接push,Git會直接智能的選擇merge

 

5、不同人修改了同一文件的文件名

用戶1 修改文件名之後提交

用戶2頁修改文件名之後準備提交,我們pull一下看看

這個時候git就報衝突

我們自己選擇需要確定的文件名

然後push就可以了

發佈了483 篇原創文章 · 獲贊 104 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章