GitHub常用命令

2022-09-10 14:21:30 字數 4742 閱讀 6849

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 git簡介 git是用c語言開發的分布版本控制系統。版本控制系統可以保留乙個檔案集合的歷史記錄,並能回滾到另外乙個狀態 歷史記錄狀態 對於任何乙個檔案,在 git 內都只有三種狀態 已提交 committed 已修改 modified 和已暫存 staged 已提交表示該檔案已經被安全地儲存在本...

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...