歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Git本地基礎操作

Git本地基礎操作

日期:2017/2/28 13:59:34   编辑:Linux教程
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 "TagName" commitNo. ,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所指向的歷史紀錄。

Ubuntu完美安裝搭建Git服務器 http://www.linuxidc.com/Linux/2015-07/120616.htm

GitHub 教程系列文章

GitHub 使用教程圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm

Git 標簽管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm

Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm

Git 遠程倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm

Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm

Git 服務器搭建與客戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm

分享實用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm

Ubuntu下Git服務器的搭建與使用指南 http://www.linuxidc.com/Linux/2015-07/120617.htm

Git 的詳細介紹:請點這裡
Git 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved