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