首頁 > 軟體

Git本地基礎操作

2020-06-16 17:56:37
1.Git簡介(安裝與設定)

1.Git的安裝(http://www.git-scm.com/download/)
2.Git設定【git config】
     關於git命令的查詢方式:
  • git安裝根目錄下/doc/index.html可以查詢,更方便的方式是在使用git時通過help進行有針對性的呼叫。(以查詢config幫助文件為例具體語法為:git config --help/git help config
  • pro git參考文件
  • git的已設定資訊都會儲存在使用者目錄(例C:UsersAdministrator)下的.gitconfig檔案中
git設定的三個級別:
     system(針對系統)
     global (針對當前的使用者)
     local   (針對當前操作的倉庫)
 
3.git使用者名稱的增刪改查
  • git增加使用者:git config --global --add user.name username
  • git刪除使用者:git config --global --unset user.name username
  • git查詢使用者:git config --global --list
4.git命令起別名
  • git config --global alias.co "checkout"
 
2.Git工作流程基本操作

0.git檔案型別(檔案物件標識:40個十六進位制字元
  • blob (binary large object):文字檔案,二進位制檔案,連結檔案
  • tree:目錄
  • commit:歷史提交
  • tag:指向一個固定的歷史提交
1.git建立倉庫
  • bare_repository:工作區和工作目錄沒有區別。(git init --bare RepositoryName
  • non_bare_repository:在倉庫目錄下有單獨的.git的目錄。(git init RepositoryName
  • 在建立的倉庫目錄下(git init)建立non_bare_repository倉庫,也可以用於將已有的專案納入git的管理
  • 克隆其他倉庫(git clone SourceRepo DestinationRepo
2.git所管理專案的檔案結構
  • working directory(工作區)
  • staging area(暫存區):代表需要提交的狀態。
  • history repository(歷史倉庫).
3.git對專案檔案的管理
  • git add:將檔案從工作區新增到暫存區。
  • git commit:將暫存區中的檔案提交為歷史記錄
  • git status:檢視工作區和暫存區之間的區別(紅色),暫存區和上次提交歷史記錄的區別(綠色
  • git rm:清理暫存區和工作區中的檔案。(只清楚暫存區中的檔案:git rm --cached FileName
  • git mv:修改工作區中的檔案(重新命名,移動)
  • git checkout:從暫存區中將已刪除檔案檢出到工作區;
  • gitignore:標明工作區中的指定檔案不被新增到暫存區或歷史記錄中,
          對於向暫存區中新增檔案且需要忽略多個檔案的情況,採取的方法是在工作目錄下建立名為.gitignore的檔案,在其中宣告忽略檔案格式如下:
    • *~:通配臨時檔案。
    • *.[oa]:通配字尾名為o或a的檔案。
    • *.txt:通配字尾名為txt的檔案。
    • folder/:通配名為folder的資料夾。
    • **/res:通配各資料夾下的名為res的檔案。
    • !test:指明名為test的檔案不被忽略。
    • !test1:對於忽略檔名以!開頭的檔案,需加反斜槓""進行跳脫。
4.git的暫存區
  • git對於暫存區的內容維護於.git/index檔案中。
5.git的本地分支與合併
  • git branch:建立分支。(一般的,分支名如主分支master一般都會指向該分支的最新的一次提交)
  • git tag:標記特定打的提交;查詢所建立的tag。(tag分兩種:1.輕量級原生的:git tag "TagNamecommitNo. ,2.帶注解可推播至伺服器的:git tag -a "TagName" commitNo.
  • git checkout:在分支間進行切換。(建立分支和切換分支可以融合為一條命令:git checkout -b branchName)。如果checkout至一個tag,那麼此時HEAD所處的狀態是detached,就是說如果你不對此tag建立分支並checkout至新分支,那麼你所做的任何修改及提交都不會被儲存。
  • git stash:切換分支之前儲存本地修改<隱形commit>,但又不產生新的commit。(儲存:git stash save -a "stashMessage"。檢視該分支中儲存的修改記錄:git stash list。恢復儲存的記錄:git stash pop --index stash@{No.}。當恢復記錄後,stash所儲存的記錄將不存在。如果想要儲存stash記錄,可以使用:git stash apply --index stash@{No.}。清除stash中的記錄:git stash drop stash@{No.}。清除所有stash:git stash clear。)
  • git merge:合併分支。分兩種:一種是fast-forward:兩個記錄是父子關係;non-fast-forward:兩個記錄有共同的父節點,需要先處理衝突後提交合併。(當要合併的分支之中,部分檔案存在衝突,想要放棄合併:git merge --abort。)
  • git log:檢視git的歷史提交情況(git log --oneline --decorate --graph --all
6.檢視和對比歷史記錄
  • git show:顯示提交資訊
  • git log:顯示紀錄檔
  • git diff:比較差異(比較當下工作區和最近一次提交版本之間的差別)
7.復原修改
  • git checkout:還原工作區(用暫存區中的記錄來還原工作區,如git status有modified記錄,此命令可復原修改)
  • git reset:還原暫存區(使用某次遞交結果來還原暫存區)
  • git clean:移除工作目錄中未提交和未新增至暫存區中的檔案(git clean -n顯示將要刪除的檔案,git clean -f刪除檔案,git clean -df刪除檔案和目錄。對於需要清除git工作目錄下.gitignore檔案中忽略的檔案,git clean -n -X檢視將會刪除的.gitignore中的忽略檔案)
  • git revert:產生新的提交並覆蓋之前提交的修改
 
8.重寫歷史記錄
  • git commit --amend:重寫當前所指向的歷史提交
    • 指向某次提交前的若干版本:([版本指標]~:該版本指標所指向版本的前一個版本。[版本指標]^n:該版本指標所指向版本的前n個版本 )
  • git rebase:維護線性歷史,類似於git merge。
  • git reset:(git reset --hard [歷史提交]:將暫存區和工作區還原成制定的歷史提交,並移動HEAD指標。git reset --mixed:還原暫存區,並移動HEAD指標,--mixed為預設命令。git reset --soft [歷史提交]:只移動HEAD指標。)
  • git reflog:列出HEAD所指向的歷史紀錄。

IT145.com E-mail:sddin#qq.com