初始化乙個git倉庫,使用git init
命令。
新增檔案到git倉庫,分兩步:(每次修改,如果不用git add
到暫存區,那就不會加入到commit
中)
使用命令git add
,注意,可反覆多次使用,新增多個檔案;(將修改的檔案從工作區新增至暫存區)
使用命令git commit -m
,完成。(將暫存區的所有內容提交至當前分支)( 輸入的是提交的說明,最好是有意義的內容,這樣能更方便的在歷史記錄中找到改動記錄)
每次修改,如果不用git add
到暫存區,那就不會加入到commit
中。
要隨時掌握工作區的狀態,使用git status
命令。
如果git status
告訴你有檔案被修改過,用git diff
可以檢視修改內容。
head
指向的版本就是當前版本,因此,git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id
。(使用 git log --pretty=oneline 檢視歷史提交日誌,輸出的每行前面一大段數字與字母組合的字串,就是 commit id,即版本號)
穿梭前,用git log
可以檢視提交歷史,以便確定要回退到哪個版本。
要重返未來,用git reflog
檢視命令歷史,以便確定要回到未來的哪個版本。
若想直接丟棄工作區的修改,用命令git checkout -- file
。
使用命令git reset head
可以把暫存區的修改撤銷掉,重新放回工作區。
如果已經提交了不合適的修改到版本庫時,想要撤銷本次提交,可以使用版本回退命令git reset --hard commit_id
,不過前提是沒有推送到遠端庫。
命令git rm
用於刪除乙個檔案。如果乙個檔案已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復檔案到最新版本,你會丟失最近一次提交後你修改的內容。
要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git
。
關聯後,使用命令git push -u origin master
第一次推送master分支的所有內容;此後,每次本地提交後,只要有必要,就可以使用命令git push origin master
推送最新修改;
要轉殖乙個倉庫,首先必須知道倉庫的位址,然後使用git clone
命令轉殖。
git鼓勵大量使用分支:
檢視分支:git branch
建立分支:git branch
切換分支:git checkout
建立+切換分支:git checkout -b
合併某分支到當前分支:git merge
刪除分支:git branch -d
當git無法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。解決衝突就是把git合併失敗的檔案手動編輯為我們希望的內容,再提交。用git log --graph
命令可以看到分支合併圖。
合併分支時,加上--no-ff
引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward
合併就看不出來曾經做過合併。
修復bug時,我們會通過建立新的bug分支進行修復,然後合併,最後刪除;當手頭工作沒有完成時,先把工作現場git stash
一下,然後去修復bug,修復後,再git stash pop
,回到工作現場。
開發乙個新feature,最好新建乙個分支;如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d
強行刪除。
檢視遠端庫資訊,使用git remote -v
;
本地新建的分支如果不推送到遠端,對其他人就是不可見的;
從遠端抓取分支,使用git pull
,如果有衝突,要先處理衝突。
從本地推送分支,使用git push origin branch-name
,如果推送失敗,先用git pull
抓取遠端的新提交;
在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name
,本地和遠端分支的名稱最好一致;
建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name
;
rebase操作可以把本地未push的分叉提交歷史整理成直線;
命令git tag
用於新建乙個標籤,預設為head
,也可以指定乙個commit id;
命令git tag -a -m
可以指定標籤資訊;
命令git tag
可以檢視所有標籤。
命令git push origin
可以推送乙個本地標籤;
命令git push origin --tags
可以推送全部未推送過的本地標籤;
命令git tag -d
可以刪除乙個本地標籤;
命令git push origin :refs/tags/
可以刪除乙個遠端標籤。
git教程鏈結
廖雪峰Git教程學習筆記
git1 通過git init命令把這個目錄變成git可以管理的倉庫 git init 2 用命令git add告訴git,把檔案新增到倉庫 git add readme.txt 3 用命令git commit告訴git,把檔案提交到倉庫 git commit m 這是備註 4 已經記不清上次怎麼修...
廖雪峰git教程學習筆記
對git來說,沒有訊息就是最好的訊息 使用 git init 把當前目錄變為git倉庫 要在倉庫裡加入檔案,先在倉庫目錄新建這個檔案後,比如新建乙個檔案xiaobai.txt,內容為 在命令列裡輸入 git status,出現提示xiaobai為untracked file,即沒有加入倉庫 git的...
《Git教程 廖雪峰》之學習筆記
原文 git教程 廖雪峰 一 git簡介 git是目前世界上最先進的分布式版本控制系統 沒有之一 git能夠幫助記錄對文件的改動的時間 內容 使用者等,對於需要重複修改多次的文件管理起來十分方便。二 git的安裝 在linux上安裝 1.首先,在命令列視窗中輸入git指令,檢視是否已安裝過git。g...