歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux維護

Linux系統中Git工作流程和基本操作

在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使用教程,希望對大家會有用。

Copyright © Linux教程網 All Rights Reserved