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...