GitHub常用命令

2021-06-28 22:18:00 字數 4772 閱讀 9420

1 git簡介

git是用c語言開發的分布版本控制系統。版本控制系統可以保留乙個檔案集合的歷史記錄,並能回滾到另外乙個狀態(歷史記錄狀態)。

對於任何乙個檔案,在 git 內都只有三種狀態:已提交(committed),已修改 (modified)和已暫存(staged)。已提交表示該檔案已經被安全地儲存在本地資料庫中了;已修改表示修改了某個檔案,但還沒有提交儲存;已暫存表示把已修改的檔案放在下次提交時要儲存的清單中。

2 git命令基本格式

一般情況下,git的命令都是git [command] [option] [argument]格式。其中 command指的是某種操作命令,比如config,mv,rm,pull,push等等。而option和 argument指的是操作命令後面的具體引數,比如:

git config --golobal user.name="hic"

其中,config指的就是配置命令,接著後面跟上配置的具體引數,其中–global指的是對全域性配置生效,後面的user.name就是對使用者名稱進行設定。

3 配置檔案

配置檔案是從事所有所有工作的基礎,在這裡配置檔案決定了工作時候的使用者,郵箱,以及預設編輯器等等常用的配置引數,下面就先說一說配置檔案。

在git中,配置檔案有三大類,分別放在不同的位置。

/etc/gitconfig

系統中所有使用者都普遍適用的配置。git config –system就是用來配置這個檔案的。

~/.gitconfig

使用者目錄下的配置檔案,該檔案只適用於該使用者。git config –global就是用來配置這個檔案的。

~/*/.git/config

這是當前專案的配置檔案,僅對該專案適用。

注意:每一級別的配置,都會覆蓋上層的相同配置。

3.1 配置資訊

使用者名稱設定

git config --system user.name "hic"

git config --global user.name "hic" git config user.name "hic"

電子郵件

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

設定文字編輯器,預設為vi,這裡設定為emacs

git config --global core.editor emacs

檢視配置資訊

git config --list

如果要檢視某個特定的環境變數,只要把它的名字放到最後即可

git config user.name

4 選擇工作目錄

選擇乙個工作目錄,開始工作,同時我們新增一些檔案和目錄。

~$ mkdir test

~$ cd test/

~/test$ ls

~/test$ echo "hello world! " > readme

~/test$ echo "this is a test! " > file

5 初始化

~/test$ git init initialized empty git repository in /home/hic/test/.git/

~/test$ la file .git readme

執行這條命令之後,在test目錄下會出

現乙個隱藏的.git目錄,該目錄會儲存工程中所有的資訊。

6 git中檔案的三種狀態

在git中,檔案只有三種狀態,已修改,已暫存和已提交。這三個檔案分別放在工作目錄,暫存區域和git目錄。當乙個檔案修改完畢之後,它仍然在工作目錄;只有當它被add之後,才會進入暫存區域,檔案狀態變為已暫存;最後,當檔案被 commit之後,它就會進去git目錄區域。這三個檔案狀態非常重要,請慢慢理解。

7 add命令暫存已修改檔案

接著上面的初始化。當初始化之後,在test目錄下,有readme,file和.git/三個檔案或目錄,其中.git/是在初始化之後生成的。

此時在test中的檔案都是存在於工作目錄區域,尚未新增到暫存區。使用下面的命令可以檢視到如果此時我要修改readme檔案。

~/test$ git status

# on branch master #

# initial commit #

# untracked files:

# (use "git add ..." to include in what will be committed) #

# readme

# file nothing added to commit but untracked files present (use "git add" to track)

你會發現,readme和file檔案均是untracked。接著使用add命令將它們新增到暫存區。

~/test$ git add .

~/test$ git status

# on branch master #

# initial commit #

# changes to be committed:

# (use "git rm --cached ..." to unstage) #

# new file: readme

# new file: file #

此時的檔案均已放在暫存區,其中git add . 就是將本目錄下所有檔案暫存。

8 commit命令提交已暫存檔案

暫存區其實更像是乙個緩衝區域,只有將檔案commit到git目錄區域才表示真正的提交。其中commit命令提交的時候,需要對提交內容進行說明,有兩種方法,一種是使用 -m "message" 指令,這適用與比較短小的資訊;另外一種就是使用編輯器進行編輯,前面設定的編輯器就是為它服務的,預設編輯器是vi,不過我這裡設定的是emacs。

在這裡,我使用-m引數。其中-a選項,表示提交所有在暫存區的檔案,當然你也可以使用 git commit file readme這樣的方式來提交。

~/test$ git commit -a -m "hahah"

[master (root-commit) 81fde76] hahah 2 files changed, 3 insertions(+) create mode 100644 readme create mode 100644 file

這是再檢視檔案狀態,就會發現沒有可以提交的檔案了。

~/test$ git status

# on branch master nothing to commit (working directory clean)

9 分支

如果事先沒有作出任何的更改,乙個專案是沒有分支的,它只有一條主線,例如:

~/test$ git branch * master

這裡master就是主幹,就是整個開發的流程,它前面的星號表示當前開發的流程。

如果在開發過程中,我們突然需要新增某個功能,或者打上某個補丁,可以在 master主幹上新增乙個分支,比如host,例如:

~/test$ git checkout -b host

switched to a new branch 'host'

~/test$ git branch

* host master

這個時候,你可以清楚的看到星號已經在host頭上,表示當前已經切換到host上,你可以開發你的補丁,而不會打亂主幹的開發。

如果你在開發過程中想要回到主幹,可以使用checkout命令進行切換。

~/test$ git checkout master

switched to branch 'master'

此時,你又回到主幹了。

10 合併

當某個分支的開發結束後,你會需要將其合併到主幹上,從而集中精力進行主幹的開發。合併前只需要將指標切換到主幹,即master,然後使用merge命令。

~/test$ git checkout host switched to branch 'host'

~/test$ echo "lsdknl" >> file

~/test$ git add file

~/test$ git commit file -m "add somthing"

[host 0dacfd9] add somthing 1 file changed, 1 insertion(+)

~/test$ git checkout master switched to branch 'master'

~/test$ git merge host updating 81fde76..0dacfd9 fast-forward file | 1 + 1 file changed, 1 insertion(+)

此時的host分支已經失去作用了,可以將刪除。

~/test$ git branch -d host deleted branch host (was 0dacfd9).

11 遠端庫操作

11.1 檢視當前遠端庫

git remote

11.2 新增遠端庫

git remote add emacs git:

11.3 從遠端庫抓取資料

git fetch [remote-name]

11.4 推送資料到遠端倉庫

git push [remote-name] [branch-name]

11.5 檢視遠端倉庫

git remote [remote-name]

11.6 遠端倉庫的刪除和重新命名

git remote rm [remote-name] git remotw rename form-name to-name

GitHub常用命令

1 mkdir tmp 在當前目錄下建立乙個新的目錄 tmp 2 cd tmp 切換到tmp目錄下 3 git init tmp目錄作為乙個本地倉庫,初始庫git庫 4 touch test.md 在當前目錄下建立了檔案 test.md 5 git add test.md 將test.md檔案增加到...

github常用命令

github常用命令 git push origin master 把本地原始碼庫push到github上 git pull origin master 從github上pull到本地原始碼庫 git config list 檢視配置資訊 git status 檢視專案狀態資訊 git branch...

GitHub常用命令

建立乙個本地倉庫的流程 為本地倉庫建立乙個目錄 在目錄中執行 git init 對本地倉庫所做的改變 例如新增 刪除檔案等 首先加入到本地倉庫的 index stage 中,之後通過 commit 命令將這些改變提交到本地倉庫。建立某個倉庫的拷貝 git clone path to reposito...