天天看點

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

1 建立git資源庫,殘酷目錄資訊

建立git資源庫的指令:

git init –bare 倉庫名稱 (其中-bare表示的意思是空的庫的意思)

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

進入e:\software\repository\git\itheima28,截圖如下:

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

hooks:送出一些腳本檔案

info:存放一些個人資訊,配置資訊

objects:所有資料存放位置

refs:git指針資訊,記錄了修改了什麼等的資訊

config:核心的配置資訊

description:描述資訊

head:存放的分支資訊。

2 使用上面建立的庫,進入e:\git\developer\user1

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

3 在使用者檔案夾下把資源clone下來

         gitclone <倉庫目錄> /g/software/repository/git/itheima <使用者目錄> .

         注意:clone時候使用者目錄必須為空

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

進入user1目錄下

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

其中e:\software\developer\user1\.git\objects位本地庫存放資料的檔案夾

4 在e:\software\developer\user1\中建立一個檔案并将檔案上傳到倉庫中

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

檢視e:\software\developer\user1下倉庫檔案的狀态

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

使用git add将檔案納入到版本控制中,并使用git commit進行送出。

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

5 要将檔案推送到遠端倉庫

上面的commit過程知識将内容送出到本地庫,要想将檔案推送到遠端倉庫,需要執行git push指令。

推送到遠端共享版本倉庫中取

git push origin master

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

檢視有沒有送出,方式:

1 在user1的同級目錄下建立user2。

2 使用克隆指令,獲得遠端倉庫中的内容。

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

6 在user2下修改readme檔案,最終送出修改的過程示範:

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

在送出過程中會出現vim編輯器,彈出它編輯日志資訊。

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

将送出的檔案推送到遠端伺服器

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

7  user2從遠端伺服器上拉檔案,使用指令是git pull

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

再次修改user1下的檔案,并送出

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

這裡要使用git add readme.txt檔案

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

關于示範沖突合并的過程,可以檢視另外一篇本人的部落格:

http://blog.csdn.net/tototuzuoquan/article/details/41398025

示範沖突合并

(1)、示範不同行沖突

a、進入user2,修改readme.txt檔案

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

b  在未進行git pull的情況下,進入user1,修改readme.txt檔案

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

總結:如果修改的是同一個檔案中的不同行,這時候git push的時候出現了問題。上面提在送出之前先git pull

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

這時候要進入這個檔案進行修改,然後再送出修改:

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

(2)、不同行的合并問題

下面是修改e:\software\developer\user1中的readme.txt檔案

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

将修改的檔案内容推送到遠端伺服器

02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用
02_建立Git倉庫,克隆倉庫,git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

删掉readme.txt.orig

總結:

git pull 之後有沖突:

$ git pull

remote: counting objects: 5, done.

remote: compressing objects: 100% (2/2), done.

remote: total 3 (delta 0), reused 0 (delta 0)

unpacking objects: 100% (3/3), done.

from g:/software/repository/git/itheima26

   50db030..a04027a  master     -> origin/master

auto-merging readme.txt

conflict (content): merge conflict in readme.txt

automatic merge failed; fix conflicts and then commit the result.

解決方法:

1.git mergetool

         調用上面指令之後會提示你輸入編輯方法,輸入:beyond compare 進入編輯器.

2.編輯完之後.調用git commit -a 把目前目錄中所有都送出到本地庫中.

3.git push origin master 送出到遠端庫中.