Git使用方法小結

2021-07-25 12:34:13 字數 3990 閱讀 4044

安裝完成後,還需要最後一步設定,在命令列輸入:

$git config –global user.name 「your name」

$git config –global user.email 「[email protected]

因為git是分布式版本控制系統,所以,每個機器都必須自報家門:你的名字和email位址。

注意git config命令的–global引數,用了這個引數,表示你這台機器上所有的git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和email位址。

git add 「filename」

告訴git,把檔案新增到倉庫

git commit -m 「…」

提交檔案-m後面是關於這次提交的說明,注意每次提交都會產生乙個commit id,這個版本號是sha1計算出來的乙個非常大的數字,用十六進製制表示

git status

可以讓我們時刻掌握倉庫當前的狀態

git diff「filename」

告訴我們當前檔案修改了哪些部分

git log

顯示提交的記錄(但是回退的版本就不會包含在裡面了),可以加入上–pretty=oneline這樣就可以在一行顯示提交記錄,比較清晰!

git reset –hard 「commit id」

用來做版本回退,在git中,用head表示當前版本,,上乙個版本就是head^,上上乙個版本就是head^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成head~100。git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用head時,表示最新的版本。

git reflog

記錄你的每一次提交和回退的命令,有時候我們回退了版本之後又想回來,這個時候我們需要未來的對應的版本號,通過這個命令可以檢視

git diff head –「filename」

可以檢視工作區和版本庫裡面最新版本的區別

git checkout – 「filename」

就是讓這個檔案回到最近一次git commit或git add時的狀態。其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。

git rm

用於刪除乙個檔案。如果乙個檔案已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復檔案到最新版本,你會丟失最近一次提交後你修改的內容。

場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout – file。

場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head file,就回到了場景1,第二步按場景1操作。

場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,git reset –hard 「commit id」,不過前提是沒有推送到遠端庫。

為什麼git比其他版本控制系統設計得優秀,因為git跟蹤並管理的是修改,而非檔案。

你會問,什麼是修改?比如你新增了一行,這就是乙個修改,刪除了一行,也是乙個修改,更改了某些字元,也是乙個修改,刪了一些又加了一些,也是乙個修改,甚至建立乙個新檔案,也算乙個修改。

工作區就是我們的工作目錄,暫存區就是我們每次add時,將修改暫存在這裡。commit就是將修改檔案一次性的從暫存區提交到分支。每次修改,如果不add到暫存區,那就不會加入到commit中

因為github需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而git支援ssh協議,所以,github只要知道了你的公鑰,就可以確認只有你自己才能推送。

當然,github允許你新增多個key。假定你有若干電腦,你一會兒在公司提交,一會兒在家裡提交,只要把每台電腦的key都新增到github,就可以在每台電腦上往github推送了。

最後友情提示,在github上免費託管的git倉庫,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感資訊放進去。

如果你不想讓別人看到git庫,有兩個辦法,乙個是交點保護費,讓github把公開的倉庫變成私有的,這樣別人就看不見了(不可讀更不可寫)。另乙個辦法是自己動手,搭乙個git伺服器,因為是你自己的git伺服器,所以別人也是看不見的。

要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git;

關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;

此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;

分布式版本系統的最大好處之一是在本地工作完全不需要考慮遠端庫的存在,也就是有沒有聯網都可以正常工作,而svn在沒有聯網的時候是拒絕幹活的!當有網路的時候,再把本地提交推送一下就完成了同步,真是太方便了!

要轉殖乙個倉庫,首先必須知道倉庫的位址,然後使用git clone命令轉殖。

git支援多種協議,包括https,但通過ssh支援的原生git協議速度最快。

git鼓勵大量使用分支:

檢視分支:git branch

建立分支:git branch

切換分支:git checkout

建立+切換分支:git checkout -b

合併某分支到當前分支:git merge

刪除分支:git branch -d

合併分支時,加上–no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。

檢視遠端庫資訊,使用git remote -v;

本地新建的分支如果不推送到遠端,對其他人就是不可見的;

從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交;

在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;

建立本地分支和遠端分支的關聯,使用git branch –set-upstream branch-name origin/branch-name;

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

多人協作的工作模式通常是這樣:

首先,可以試圖用git push origin branch-name推送自己的修改;

如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;

如果合併有衝突,則解決衝突,並在本地提交;

沒有衝突或者解決掉衝突後,再用git push origin branch-name推送就能成功!

如果git pull提示「no tracking information」,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch –set-upstream branch-name origin/branch-name。

命令git tag 用於新建乙個標籤,預設為head,也可以指定乙個commit id;

git tag -a -m 「blablabla…」可以指定標籤資訊;

git tag -s -m 「blablabla…」可以用pgp簽名標籤;

命令git tag可以檢視所有標籤。

命令git push origin 可以推送乙個本地標籤;

命令git push origin –tags可以推送全部未推送過的本地標籤;

命令git tag -d 可以刪除乙個本地標籤;

命令git push origin :refs/tags/可以刪除乙個遠端標籤。

git的使用方法小結

git 是乙個開源的分布式版本控制工具,它的開發者就是鼎鼎大名的linux 作業系統的作者linus torvalds。git 被開發出來的初衷本是為了更好地管理linux 核心,而現在卻早已被廣泛應用於全球各種大中小型的專案中。今天是我們關於git 的第一堂課,主要是講解一下它最基本的用法,那麼就...

git的使用方法小結

git branch branch name 建立本地分支 git checkout branch name 切換分支git checkout b branch name 建立本地分支,並切換到新分支上git push origin branch name remote branchname git...

Git 使用方法

git 常用命令 git init here 建立本地倉庫 repository 將會在資料夾下建立乙個 git 資料夾,git 資料夾裡儲存了所有的版本資訊 標記等內容 git remote add origin git github.com winter1991 helloworld.git 把...