Git常用命令總結

2021-09-29 10:35:47 字數 4371 閱讀 8416

3. git的安裝與配置

3.2. 安裝git

3.3. 定製git環境

3.4. 設定別名

4. git 基礎

5. 合併分支時衝突解決

gitgit是乙個版本控制工具,是為了更好好的幫助程式設計師進行版本控制以及協同開發。

github是乙個面向開源及私有軟體專案的託管平台。因為只支援git 作為唯一的版本庫格式進行託管,故名github。

版本控制是一種記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。

安裝包直接安裝,一步步走即可,會自動配置環境變數,否則自己在path中新增環境變數。

git 自帶乙個git config 的工具來幫助設定git外觀和行為的配置變數。這些變數儲存在三個不同的位置。

/etc/gitconfig該檔案包含了適用於系統所有使用者和所有庫的值。

~/.gitconfig該檔案在使用者目錄下,是針對使用者的配置。

.git/config該檔案在具體專案中的乙個隱藏資料夾.git中。是針對該項目的具體配置。

安裝好git後,需要設定自己的使用者名稱和郵箱位址。每次git提交都會使用該資訊。

#設定提交人的資訊,只對以後的提交生效,如果沒有--global選項,則只是在該專案中生效。

$ git config --global user.name "yourname"

$ git config --global user.email [email protected]

對於比較複雜的命令,可以設定別名,方便記憶以及操作。對於git commit -m message來說,該命令顯得有些難記,不想敲那麼多字,可以通過設定別名來簡化命令。

$ git config --global alias.cm 'commit -m'

$ git cm message

配置好設定後,可以在使用者目錄下的.gitconfig檔案中檢視,其中配置如下:

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-qrcx2mwm-1573130895932)(./1531186114453.png)]

在本地的已有專案中匯入所有檔案到git中。

$ git init
從git倉庫轉殖乙個專案到本地。

$ git clone url
git 支援多種協議,https://協議,git://協議,ssh 協議

# 生成乙個檔案

$ echo

"#notes"

>> readme.md

$ git status

# 跟蹤新檔案,git add 後面如果是路徑則遞迴的追蹤

$ git add readme.md

# 追蹤當前路徑下所有檔案

$ git add .

# 追蹤所有檔案

$ git add *

有時候不小心多新增(add)了一些檔案,想要取消新增,則可以使用以下命令阿里取消暫存檔案!

# 取消暫存檔案,即不提交該檔案

$ git reset head

$ #移除檔案 -f 強制刪除

$ git

rm stdout.log

$ #移動檔案(可以用來修改名稱)

$ git

mv filefrom fileto

$ #檢視日誌

$ git log

$ #提交更新

$ git commit -m "commit message"

$ #只要加上-a選項,git 會自動將已追蹤檔案暫存並提交,從而跳過 git add這一步。

$ git commit -a -m "commit message"

#帶有 --amend 的命令會嘗試重新提交,第二次提交的會覆蓋原來的提交資訊,最終只有乙個提交。

$ git commit --amend

#將本地倉庫推送為遠端倉庫

$ git remote add origin

#將本地修改推送到遠端倉庫的master分支

$ git push origin master

# 切換分支

$ git checkout branch-a

# 建立分支並切換

$ git checkout -b branch-b

# 只建立分支,不切換

$ git branch branch-c

# 更新分支

$ git pull origin 當前分支

# 合併分支,將branch-d分支合併到當前分支上

$ git merge branch-d

# 合併後需要推送到遠端

$ git push origin 當前branch

$ git fetch

# 更新指定分支到本地

$ git fetch origin 分支名稱

git pull 可以理解為 git fetch + git merge

即git fetch 直接拉取分支,git pull 拉取分支並自動合併,git fetch +git merge 有可能會產生衝突,需要手動解決。

git在當前分支有修改並且未提交的內容時,是不允許切換分支的,但是如果此時並不想將改了一半的內容提交怎麼辦?可以使用git的儲藏功能,將修改內容儲藏,這樣便可以切換到其他分支,操作完成後在返回到該分支恢復儲藏即可。

# 將修改內容儲藏,儲存當前的工作現場

$ git stash

# 檢視現有 stash

$ git stash list

# 恢復儲藏內容,並刪除該儲藏

$ git stash pop stash@

.gitignore檔案,記錄著不交由git來管的檔案,即不提交的檔案,一般為日誌檔案,target檔案等。

但是在專案初期,並沒有建立.gitignore檔案,後期發現有些檔案根本不需要提交,新建立乙個.gitignore檔案,或者是在.gitignore檔案中後加上的忽略檔案,這時候這些檔案已經提交了,這時候建立的.gitignore檔案規則對於這些 tracked 檔案無效。

其實.gitignore檔案只會忽略那些沒有被 track(追蹤)的檔案,這時候如果需要取消追蹤這些檔案,可以執行以下命令,從快取中刪除對該檔案的追蹤,例如:

$ git rm --cached -r .idea
git rm --cached 與 git rm 的區別

git rm 刪除快取區的檔案,同時工作區也不需要這個檔案的時候,可以使用 git rm,例如過時的檔案

git rm --cached 停止追蹤檔案,但是工作區還需要這些檔案,例如 .idea 資料夾,此時可以使用 git rm --cached 命令

$ git fetch -a 同步遠端分支到本地

$ git branch -d

(刪除本地分支)

$ git push origin --delete

$ git fetch -p(刪除沒有對應遠端的本地分支)

分支之間不要用拷貝的方式來共享檔案,如果分支間需要有共享的檔案,可以使用merge的方式來合併分支。可是如果多個人對同乙個檔案的同乙個地方進行了修改,則會出現衝突報錯,此時需要做的便是解決衝突,重新提交。

$ git merge master(將master合併到當前分支)
解決衝突問題。如果發現git鎖死不能提交,則需要刪除記錄檔案。此步驟不是必須的

$ cd .git

$ rm merge_head

$ git add .

$ git commit -m "合併master,解決衝突"

$ git push origin branch

progit2.pdf

Git常用命令總結

原文 author joseph lee e mail fdlixiaojun gmail.com 基礎概念 git是分布式版本控制系統,在每個主機上都儲存這版本庫的完整映象,這於cvs,svn 等集中式版本控制系統不同,集中式版本控制系統僅是在伺服器上儲存有所有資訊。git檔案更改後是以快照的方式...

git常用命令總結

一 分支新建與切換 git中的分支,本質上僅僅是個指向 commit 物件的可變指標。1 新建乙個分支 比如新建乙個名為testing的分支 git branch testing 即是在當前commit物件上新建了乙個分支指標 注 head指向當前所在的分支,用cat git head可以檢視 2 ...

git常用命令總結

檢查git 是否安裝 git 新增git 個人資訊 git config global user.name your name git config global user.email email example.com 建立乙個版本庫 mkdir learngit 建立乙個空目錄 cd learn...