在Linux系統中Git主要用來管理軟件的源代碼,當然Linux Git也可以用來保存一些私人的文檔。下面就為大家分享一下Linux系統中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”
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所指向的歷史紀錄。
以上就是Linux系統中Git工作流程和基本操作了,本文比較詳細地介紹了Linux Git使用教程,希望對大家會有用。