一.添加遠程庫
1.
$ git remote add origin git項目地址
2.把本地庫的所有內容推送到遠程庫上,記得如果報錯
error: src refspec master does not match any,則先add添加文件然後commit
$ git push -u origin master
以後每次修改可以 git push origin master推送到服務器
二.克隆遠程庫用命令git
clone +項目地址
$ git clone http://github.com/wylb/gitskills.git
三. 創建dev
分支,然後切換到dev
分支
$ git checkout -b dev
等價於
$ git branch dev
$ git checkout dev
查看分支:git branch
創建分支:git branch <name>
切換分支:git checkout <name>
創建+切換分支:git checkout -b <name>
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
git branch -D <name>
四. 解決衝突
1. 先使用 git status查看衝突文件
2.修改衝突文件
3.是用
git add 添加文件
4. 提交衝突文件
5.git push推送到遠程
注意: git log
也可以看到分支的合併情況
$ git log --graph --pretty=oneline --abbrev-commit
通常,合併分支時,如果可能,Git會用Fast forward
模式,但這種模式下,刪除分支後,會丟掉分支信息。
--no-ff
方式的git
merge
可以強制禁用Fast forward
模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。
五. 儲藏分支
當你接到一個修復bug的任務時,很自然地,你想創建一個分支issue
來修復它,但是,等等,當前正在dev
上進行的工作還沒有提交,並不是你不想提交,而是工作只進行到一半,還沒法提交。
stash
功能,可以把當前工作現場“儲藏”起來,等以後恢復現場後繼續工作
$ git stash
修改完bug後可以用git
stash list
命令,查看剛纔儲藏的分支
恢復分支有兩個辦法:
一是用git stash apply
恢復,但是恢復後,stash內容並不刪除,你需要用git
stash drop
來刪除;
另一種方式是用git stash pop
,恢復的同時把stash內容也刪了:
$ git stash apply stash@{0} 恢復到指定的stash
六.查看遠程分支
$ git remote
用git
remote -v
顯示更詳細的信息
-
查看遠程庫信息,使用
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
pull
提示“no tracking information”,則說明本地分支和遠程分支的鏈接關係沒有創建,用命令git
branch --set-upstream branch-name origin/branch-name
。七. 創建標籤
1.命令git
tag <name>
就可以打一個新標籤
2. git
tag
查看所有標籤
3. 爲之前的某一次提交打標籤
$ git tag v0.9
6224937 標籤的id
4.git
show <tagname>
查看標籤信息
5.創建帶有說明的標籤,用-a
指定標籤名,-m
指定說明文字
$ git tag -a v0.1 -m "version 0.1 released" 3628164
6.未推送到遠程的標籤 刪除
$ git tag -d v0.1
7.推送某個標籤到遠程,使用命令git
push origin <tagname>
8.一次性推送全部尚未推送到遠程的本地標籤
$ git push origin --tags
9.刪除遠程標籤
先從本地刪除
$ git tag -d v0.9
然後,從遠程刪除
$ git push origin :refs/tags/v0.9