導航:首頁 > 源碼編譯 > git編譯分支

git編譯分支

發布時間:2023-03-26 06:11:44

1. Android開發,切換Git分支等操作,切換後再切回來,編譯時是否需要make clean

如果你當前的環境編譯過,會產生很多編譯過的文件(未提交)。低版本的git,想切分支想切不過去。高版本的git是可以切的,同時會把沒提交的那些文件也帶過去。不做make clean可能也會編譯過。但不一定是你想要的結果。特別是比較底層的東西,切過分支後有改變,但剛才已經編譯過,可能就不編了。編譯結果就跟當前分支的代碼不一致了

2. Git分支,為何以及如何使用分支

幾乎每一種版本控制系統都以某種形式支持分支。使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。在很多版本控制系統中,這是個昂貴的過程,常常需要創建一個源代碼目錄的完整副本,對大型項目來說會花費很長時間。

有人把 Git 的分支模型稱為「必殺技特性」,而正是因為它,將 Git 從版本控制系統家族裡區分出來。Git 有何特別之處呢?Git 的分支可謂是難以置信的輕量級,它的新建操作幾乎可以在瞬間完成,並且在不同分支間切換起來也差不多一樣快。和許多其他版本控制系統不同,Git 鼓勵在工作流程中頻繁使用分支與合並,哪怕一天之內進行許多次都沒有關系。理解分支的概念並熟練運用後,你才會意識到為什麼 Git 是一個如此強大而獨特的工具,並從此真正改變你的開發方式。

為了理解 Git 分支的實現方式,我們需要回顧一下 Git 是如何儲存數據的。或許你還記得第一章的內容,Git 保存的不是文件差異或者變化量,而只是一系列文件快照。

在 Git 中提交時,會保存一個提交(commit)對象,該對象包含一個指向暫存內容快照的指針,包含本次提交的作者等相關附屬信息,包含零個或多個指向該提交對 象的父對象指針:首次提交是沒有直接祖先的,普通提交有一個祖先,由兩個或多個分支合並產生的提交則有多個祖先。

為直觀起見,我們假設在工作目錄中有三個文件,准備將它們暫存後提交。暫存操作會對每一個文件計算校驗和(即第一章中提到的 SHA-1 哈希字串),然後把當前版本的文件快照保存到 Git 倉庫中(Git 使用 blob 類型的對象存儲這些快照),並將校驗和加入暫存區域:

$ git add README test.rb LICENSE$ git commit -m 'initial commit of my project'

當使用git commit新建一個提交對象前,Git 會先計算每一個子目錄(本例中就是項目根目錄)的校驗和,然後在 Git 倉庫中將這些目錄保存為樹(tree)對象。之後 Git 創建的提交對象,除了包含相關提交信息以外,還包含著指向這個樹對象(項目根目錄)的指針,如此它就可以在將來需要的時候,重現此次快照的內容了。

現在,Git 倉庫中有五個對象:三個表示文件快照內容的 blob 對象;一個記錄著目錄樹內容及其中各個文件對應 blob 對象索引的 tree 對象;以及一個包含指向 tree 對象(根目錄)的索引和其他提交信息元數據的 commit 對象。概念上來說,倉庫中的各個對象保存的數據和相互關系看起來如圖 3-1 所示:


圖 3-8. HEAD 在一次 checkout 之後移動到了另一個分支

這條命令做了兩件事。它把 HEAD 指針移回到 master 分支,並把工作目錄中的文件換成了 master 分支所指向的快照內容。也就是說,現在開始所做的改動,將始於本項目中一個較老的版本。它的主要作用是將 testing 分支里作出的修改暫時取消,這樣你就可以向另一個方向進行開發。

3. 如何用git,在伺服器上面創建一個分支

1,從已有的分支創建新的分支(如從master分支),創建一個dev分支

git checkout -b dev
2,創建完可以查看一下,分支已經切換到dev
git branch
3,提交該分支到遠程倉庫

git push origin dev
4,測試從遠程獲取dev

git pull origin dev

或者:

如果用命令行,運行 git fetch,可以將遠程分支信息獲取到本地,再運行 git checkout -b local-branchname origin/remote_branchname 就可以將遠程分支映射到本地命名為local-branchname 的一分支
5,我覺得現在重要的就是設置git push,pull默認的提交獲取分支,這樣就很方便的使用git push 提交信息或git pull獲取信息

git branch --set-upstream-to=origin/dev

取消對master的跟蹤

git branch --unset-upstream master
6,現在隨便修改一下工程文件的內容,然後git commit ,git push,之後就可以直接提交到遠程的dev分支中,而不會是master

4. Git分支的創建以及分支沖突解決

    在Git中的每次提交,Git都會把它們串成一條時間線,這條時間線就是一個分支,但是到目前為止,我們只有一條分支 master 分支,也就是我們的主分支,在實際的項目開發過程中,我們並不會在 master 分支上進行開發,而是會新創建一個分支,然後在這個新創建的分支上開發測試,全部沒有問題後,再合並到主分支上。比如我要開發一個項目中的一個功能,我就要新創建一個屬於我的分支,這個分支會拷貝主分支的一個完全的副本,我在這個分支上進行的各種操作,不會對其他人的開發造成影響,當我的功能開發測試完成後,就把我的分支合並到 master 主分支上。
    在我們以前看到的, git log 中, HEAD 嚴格來說不是指向提交,而是指向 master , master 才是指向提交的,所以 HEAD 指向的就是當前的分支。
    使用Git進行團隊開發的過程中,Git是鼓勵大量使用分支的:
    查看分支: git branch ,*的意思是當前停留在哪個分支上。

閱讀全文

與git編譯分支相關的資料

熱點內容
程序員那麼可愛歌曲完整版 瀏覽:904
為什麼購買pdf 瀏覽:43
操作系統代碼編譯 瀏覽:483
程序員東北大學 瀏覽:426
編譯忽略空字元 瀏覽:117
多店鋪阿里雲伺服器教程 瀏覽:378
單片機求初值 瀏覽:420
安卓機如何在電腦備份圖片 瀏覽:925
ca證書加密機價格 瀏覽:798
天乾地支年份演算法 瀏覽:796
程序員打造的視頻 瀏覽:7
java和php通信 瀏覽:680
為什麼黑程序員 瀏覽:163
程序員男生 瀏覽:456
戴爾文件夾內文件怎麼置頂 瀏覽:582
雲伺服器6m網速 瀏覽:722
vivo手機中國聯通伺服器地址 瀏覽:862
工程總控編譯失敗 瀏覽:707
燕趙紅楓app如何下載 瀏覽:867
php查殺軟體 瀏覽:878