git 配置
使用git的第一件事就是設定你的名字和email,這些就是你在提交commit時的簽名。
$ git config --global user.name "scott chacon"
$ git config --global user.email "[email protected]"
clone乙個倉庫
git clone git:
建立乙個新的倉庫
現在假設有乙個叫」project.tar.gz」的壓縮檔案裡包含了你的一些檔案,你可以用下面的命令讓它置於git的版本控制
管理之下.
$ tar xzf project.tar.gz
$ cd project
$ git init
如何提交乙個檔案?
1:將檔案新增到索引當中去(即暫存區):
$ git add file1 file2 file3
2:將索引中的檔案提交到遠端倉庫
$ git commit
或者使用git commmit -a 來提交暫存區(索引)中的所有的檔案。
注意:在上述過程中,可以使用下面的命令來檢視暫存區中有哪些檔案將被提交:
$ git diff --cached
分支使用:
1:建立乙個分支(如experimental):
$ git branch experimental
2:檢視當前分支列表:
$ git branch
3:切換分支
假定當前分支是master分支,要切換到experimental分支,執行如下命令:
$ git checkout experimental
4:合併分支
假定當前處在master分支下,要將experimental分支合併過來,可使用如下命令:
$ git merge experimental
注意:合併的過程中,可能會出現衝突,可使用:$git diff 命令檢視哪些檔案有衝突,然後手動修改衝突。
解決衝突示例:
解決合併中的衝突
如果執行自動合併沒有成功的話,git會在索引和工作樹里設定乙個特殊的狀態, 提示你如何解決合併中出現的衝
突。有衝突(conflicts)的檔案會儲存在索引中,除非你解決了問題了並且更新了索引,否則執行git commit都會失敗:
$ git commit
file.txt: needs merge
如果執行git status 會顯示這些檔案沒有合併(unmerged),這些有衝突的檔案裡面會新增像下面的衝突識別符號:
<<<<<<< head:file.txt
hello world
*****==
goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
你所需要的做是就是編輯解決衝突,(接著把衝突識別符號刪掉),再執行下面的命令:
$ git add file.txt
$ git commit
注意:提交注釋裡已經有一些關於合併的資訊了,通常是用這些預設資訊,但是你可以新增一些你想要的注釋。
上面這些就是你要做乙個簡單合併所要知道的,但是git提供更多的一些資訊來 幫助解決衝突。
撤銷乙個合併:
如果你覺得你合併後的狀態是一團亂麻,想把當前的修改都放棄,你可以用下面的命令回到合併之前的狀態:
$ git reset --hard head
或者你已經把合併後的**提交,但還是想把它們撒銷:
$ git reset --hard orig_head
5:刪除分支:
$ git branch -d experimental
日誌管理:
1:檢視日誌
git log命令可以顯示所有的提交(commit)的日誌資訊。
可以新增一些引數,限定git log命令
讓git log顯示補丁(patchs):
$ git log -p
如果用--stat選項使用'git log',它會顯示在每個提交(commit)中哪些檔案被修改了
$ git log --stat
可以按你的要求來格式化日誌輸出。『--pretty'引數可以使用若干表現格式
$ git log --pretty=oneline
$ git log --pretty=short
2:日誌排序
你也可以把日誌記錄按一些不同的順序來顯示。注意,git日誌從最近的提交(commit)開始,並且從這裡開始向它們
父分支回溯。如果你要指定乙個特定的順序,可以為git log命令新增順序引數(ordering option)。
$ git log --pretty=format:'%h : %s' --topo-order --graph
$ git log --pretty=format:'%h : %s' --date-order --graph
也可以用 『--reverse'引數來逆向顯示所有日誌。
分布式工作流程:
1:獲取工程**:
在本機上另外乙個開發者目錄下clone乙份**
$ git clone /home/alice/project myrepo
也可以從遠端獲取**:
git clone git:
2:對**進行開發,然後提交。
$ git commit -a
此處,可以開發過程中可以多次重複進行。
3:另乙個開發者,可以從遠端將其他人提交的修改同步過來。
$ git pull /home/bob/myrepo master
注意:git pull 命令的用法, git pull 本地開發** 遠端**
從遠端pull**,一般有兩步:
(1):從遠端分支(remote branch)抓取被修改的內容
在config檔案中定義$ git remote add bob /home/bob/myrepo(使用git remote命令建立了bob的運程倉庫的縮寫)
這樣就可以使用:$ git fetch bob來完成該第一部分工作。
(2):把修改的內容合併進當前的分支
採用git merge bob/master命令即可。
Git新手入門
git是一款分布式版本管理系統,是現在最主流的版本管理系統。在svn集中式版本管理下,使用者要修改檔案必須先到伺服器獲取到最新的檔案,然後再將自己修改的內容提交給伺服器,使用者必須在聯網的工作環境下工作。而在git的分布式版本管理下,則允許使用者在完全離線的情況下工作,然後連上網路後再將自己的修改提...
git之新手入門使用
git init 將本地資料夾初始化成乙個本地的倉庫 git status 命令檢視當前倉庫檔案的狀態 git add readme.txt 命令把readme.txt檔案加入到暫存區 git commit m 第一次提交readme.txt 把readme.txt從暫存區提交到版本庫 git di...
git新手入門筆記
如下圖所示 解釋 最開始 在workspace 工作區 中 add index 暫存區 commit repository 倉庫 push remote 遠端庫 也可以 現在remote中 pull 工作區 7git的基礎操作 7.1 新建乙個資料夾hellogit 7.2 開啟hellogit資料...