綜述:來了新的公司,以前用的是svn,現在是git,在這裡總結學習下,提高自己的認識。svn、vcss系統等都是集中式的版本控制系統,git是分布式的。兩者的區別是:
svn
面試問題:
在集中庫建立乙個hotfix分支,進行修改後將其push到集中庫中,然後傳送乙個pr向qa請求合併**到production庫中。
首先將遠端的分支拉下來。
做好**的取捨,解決衝突,然後再次將**提交即可。
解決外衝突時候還要再提交一次pr。
每次從遠端拉取**的時候,本地有自己臨時修改的**,先使用git stash將自己修改的臨時**儲存起來,拉取下來之後,再使用git pop將修改的**合併進去,這個操作,針對衝突的情況有大的用處,如果沒有衝突,則沒有必要性;
使用git sync,彈出彈框後,選擇從遠端分支拉去**,拉下來之後,解決衝突,解決完之後,標誌檔案為resolved狀態,
標誌之後,使用switch/checkout切換後自己的topic分支,再起提交修改之後的topic分支**即可;
還有**在衝突時,是針對每一行內容的比對,同時修改乙個檔案,只要不是同乙個內容,不會引起衝突。
上圖展示了git的整體架構,以及和各部分相關的主要命令。先說明下其中涉及的各部分。
工作區(working directory),簡言之就是你工作的區域。對於git而言,就是的本地工作目錄。工作區的內容會包含提交到暫存區和版本庫(當前提交點)的內容,同時也包含自己的修改內容。
暫存區(stage area, 又稱為索引區index),是git中乙個非常重要的概念。是我們把修改提交版本庫前的乙個過渡階段。檢視git自帶幫助手冊的時候,通常以index來表示暫存區。在工作目錄下有乙個.git的目錄,裡面有個index檔案,儲存著關於暫存區的內容。git add命令將工作區內容新增到暫存區。
遠端版本庫(remote repository),與本地倉庫概念基本一致,不同之處在於乙個存在遠端,可用於遠端協作,乙個卻是存在於本地。通過push/pull可實現本地與遠端的互動;
遠端倉庫副本,可以理解為存在於本地的遠端倉庫快取。如需更新,可通過git fetch/pull命令獲取遠端倉庫內容。使用fetch獲取時,並未合併到本地倉庫,此時可使用git merge實現遠端倉庫副本與本地倉庫的合併。git pull 根據配置的不同,可為git fetch + git merge 或 git fetch + git rebase。rebase和merge的區別可以自己去網上找些資料了解下。
Git分布式版本管理工具 流程分享
這裡對如何安裝git不再贅述,可自行參考其他教程進行安裝。1.初始化git倉庫 在專案的根目錄中,右鍵選擇git bash here開啟git命令列。命令 git init初始化git倉庫,會生成乙個.git目錄,預設是隱藏的,存放專案 備份。2.開始建立正常專案檔案 正常新增專案檔案,如 read...
分布式版本管理工具GIT使用心得
分布式版本管理工具git使用心得 來自於 服務端框架工具經驗 2014 08 13 11 01 從這個專案開始,我們專案組已經全面把 管理從svn轉移到了git。很多人會問為什麼不用svn呢?svn有什麼不好嗎?svn缺點 svn的確是乙個很強大的版本管理工具,但是他有以下一些缺點 1.提交更新等操...
學習git版本管理工具
1.強制上傳 git push f origin master2.刪除已關聯的名為origin的遠端庫 git remote rm origin git remote rm github3.檢視遠端庫資訊 git remote v4.關聯github的遠端庫 git remote add githu...