--- tags: 版本控管,git --- # Git版本控管實務 ## 分散式管理系統 * Git為分散式版本控管系統,可把檔案狀態作為更新歷史紀錄加以保存,方便還原與追蹤 * 為了解決協作時對於同一檔案的修改導致互相覆蓋,又無法紀錄修改等問題 * 版本庫是記錄檔案或目錄狀態的地方,儲存內容的修改歷史記錄,分為本地端與遠端。 * 本地端與遠端版本庫功能相同,差別在於遠端版本庫作為協作公開使用 ### 三層式目錄結構 * 工作目錄(working directory): 專案被取出的某一個版本。這些檔案從 Git 目錄內被壓縮過的資料庫中拉出來並放在保存目前專案的目錄供使用或修改 * 暫存區域(staging area): 位於工作目錄與版本庫之間,為了向版本庫提交前的暫存區域。所有提交不會直接進版本庫,而是先進到暫存區作索引,之後才提交 * Git 目錄(repository): Git 用來儲存專案的 metadata 及物件資料庫。這是 Git 最重要的部份,當從其它版本庫複製時會備份過來 ### Git工作流程  ## 名詞說明 * Commit 提交修改到本地版本庫 * Push 將提交上傳到遠端版本庫 * Pulll 從遠端版本庫下載提交 * Branch 建立新的分支  用於發布多個版本 * Merge 合併分支  Branch分支可以各自合併  當分支開發完成,就可以合併回master * Checkout 切換分支  * Stash 將當前修改加以暫存  當有修改內容需要儲存起來但不想要馬上進行提交,常見於切換分支時,就可以使用Stash來進行儲藏 ### 問題排除 #### 一直出現驗證失敗的問題 用Token取代Git帳密的做法 * Step 1.進入Github的個人設定>Developer settings>Personal access tokens * Step 2.點選Generate new token後,選擇repository相關的權限後,建立一個新token後,就能得到token序號 * Step 3.將網址的地方改用以下的格式 * https://你的帳號:你的TOKEN@github.com/javck/voyage.git #### Win環境開啟SourceTree一直閃退 * Step 1. 清除C:\Users\user\AppData\Local裏頭的Atlassian和SourceTree資料夾 清除C:\Users\user\AppData\Roaming裏頭的Atlassian資料夾 * Step 2. 關閉pageant服務 * Step 3. 重新安裝SourceTree #### Push到遠端被拒  一般原因為遠端有新的提交還沒被Pull下來,只要先把新提交給Pull到本地端,就可以重新進行Push  #### 修改到同一個檔案造成衝突  * 當提交同時修改了同一個檔案,而系統無法分辨應該採用哪一個提交,就會產生衝突。 * 衝突處理,就是讓提交人自己決定應該如何合併該檔案的修改 * 衝突程式碼會出現以====為分隔線,箭頭為界的區塊,以標示各提交的修改內容。  處理完成需將等號和箭頭等符號都移除,視為已解決
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up