Git學習指南第11章

2021-10-02 10:50:04 字數 3010 閱讀 3204

1.主專案和子專案之間的關係

子模組  submodule

子樹  subtree

2.建立sub版本庫

mkdir -p sub/src

echo 'sub' > sub/src/sub.txt

cd sub

git init

git add --all

git commit -m 'init sub'

git branch v1.0

3.建立嵌入子模組的主版本庫

mkdir -p submodule/main/src

echo 'main submodule' > submodule/main/src/main.txt

cd submodule/main

git init

4.鏈結目錄git submodule add /d/git/projects/sub/ sub

5.註冊子模組git submodule init

6.主版本庫提交子模組

cd sub

git checkout v1.0

cd ..

git add --all

git commit -m "submodule added"

7.檢視主版本庫提交的物件樹(commit型別的sub目錄)

git cat-file -p 8c7ca65

git cat-file -p 54e6c2ba774f4e9694bae39295e784a9b4c949b6

8.轉殖乙個帶子模組的專案

mkdir -p submodule/clone

cd submodule/clone

git clone /d/git/projects/submodule/main

git submodule init

git submodule update

9.檢視子模組被引用提交的雜湊值git submodule status

10.更新sub版本庫版本

echo 'v2.0' >> src/sub.txt

git add --all

git commit -m "update v2.0"

git branch v2.0

11.使用子模組中的新版本

cd sub

git fetch

git checkout v2.0

cd ..

git add --all

git commit -m "new version of the submodule"

12.主版本庫與模組版本庫中的檔案都被修改

cd sub

echo 'foo' > foo.txt

git add foo.txt

git commit -m 'changed submodule'

git push

cd ..

echo 'bar' > bar.txt

git add --all

git commit -m "new version of submodule"

13.更新子模組

git submodule init(修改不被接受時git submodule sync)

git submodule update

14.建立嵌入子樹的主版本庫

mkdir base

echo 'base' > base/base.txt

cd base

git init

git add --all

git commit -m 'base main'

git clone /d/git/projects/subtree/base main

15.嵌入乙個子樹

cd main

git subtree add --prefix=sub /d/git/projects/sub master

16.嵌入乙個合併提交子樹

git subtree add --squash --prefix=sub /d/git/projects/sub master

git log --graph --oneline

17.獲取子樹的新版本

git subtree pull --prefix=sub /d/git/projects/sub v3.0

18.獲取沒有中間提交的指定提交

git subtree pull --squash --prefix=sub /d/git/projects/sub v3.0

19.分離模組目錄中的修改

git subtree split --prefix sub --branch sub/master

git subtree split --rejoin --prefix sub --branch sub/master

20.合併模組版本庫中的修改

git checkout sub/master

git fetch /d/git/projects/sub master

git merge fetch_head

21.將修改傳送到模組版本庫中並刪除臨時分支

git push /d/git/projects/sub/ head:master

git checkout master

git branch -d sub/master

Git學習指南第7章

1.合併分支git merge feature 2.配置顯示合併衝突的共同祖輩git config merge.conflictstyle diff3 3.檢出衝突檔案祖輩的版本git show 1 foo.txt ancestor.txt 4.檢出衝突檔案我們的版本git show 2 foo.t...

Git學習指南第2章 命令整理

1.config命令配置使用者名稱和使用者郵箱 git config global user.name foobar git config global user.email foobar qq.com 2.建立目錄和檔案 mkdir p projects first steps cd projec...

《Git學習指南》學習筆記(三)

提交一般分未兩步 add和commit。add將修改存入到索引 index 或叫暫存區 staging area 中。status命令會出現三種可能的狀態 對於那些不希望被提交的修改,可以使用以下幾種方法 gitignore只會影響它所在目錄下的所有檔案。gitignore也只會影響當前還未交由gi...