Git本地基礎操作

來源:互聯網
上載者:User

Git本地基礎操作
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:\Users\Administrator)下的.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 "TagNamecommitNo.
  • 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所指向的曆史紀錄。

Ubuntu完美安裝搭建Git伺服器 

GitHub 教程系列文章: 

GitHub 使用教程圖文詳解   

Git 標籤管理詳解  

Git 分支管理詳解  

Git 遠程倉庫詳解  

Git 本地倉庫(Repository)詳解  

Git 伺服器搭建與用戶端安裝   

Git 概述  

分享實用的GitHub 使用教程  

Ubuntu下Git伺服器的搭建與使用指南 

Git 的詳細介紹:請點這裡
Git 的:請點這裡

本文永久更新連結地址: 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.