查看遠程倉庫的名字
默認為 origin
git remote
查看更詳細遠程分支的名稱
可以查看到fetch
跟push
地址
git remote -v
將本地分支推送到遠程
git push origin local_branchName:remote_branchName
刪除遠程分支
方式一
git push origin :branch-name 注意origin后有空格
方式二
git branch -r -d origin/branch-name
本地分支跟遠程分支建立關聯
git branch --set-upstream dev origin/dev 制定本地dev分支跟遠程origin/dev分支的鏈接
撤銷
在修改在工作區還未添加至暫存區
git checkout -- file
修改的內容已經添加至暫存區
可以把暫存區的修改撤銷掉 (unstage),重新放到工作區
git reset HEAD file
撤銷提交至版本庫
git reset --hard commit_id 回退到之前的某次提交版本 當前的工作區 跟暫存區都會重置 暫存區(stage)會清空 工作區會清空
git reset --hard HEAD^ HEAD 代表當前版本
--soft commit_id 只改變引用的指向,不改變暫存區和工作區
--mixed commit_id 不適用參數 默認是mixed 改變引用指向及重置暫存區,但是不改變工作區
--hard commit_id
刪除文件
注意:刪除文件后,修改就被提交到暫存區
git rm
分支
創建分支
git branch 分支名
刪除分支
git branch -d 分支名稱
如果刪除一個未合并的分支會提示,可以使用強制刪除分支
git branch -D 分支名
切換分支
git checkout 分支名稱
創建并切換分支
git checkout -b 分支名
將分支整合到當前分支
git merge 分支名
合并分支時,如果可能,Git會用Fast forward模式,但這種模式下,刪除分支后,會丟掉分支信息
如果要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息
git merge —no-ff -m “” 分支名 表示禁用Fast forward
推送分支
就是把該分支上的所有本地提交推送到遠程庫。推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上
git push origin master
如果要推送其他分支,比如dev,就改成
git push origin dev
標簽
打標簽
git tag v1.0 打一個新標簽v1.0
創建帶有說明的標簽
git tag -a v0.1 -m “標簽說明“ commit_id 創建帶有說明的標簽 用-a指定標簽名,-m指定說明文字
查看所有標簽
git tag
查看標簽說明
git show <tagname>
補打標簽
git tag -a <tagname> commint_id
查看comminit_id
git log 或者 git reflog
刪除標簽
git tag -d 標簽名
推送某個標簽到遠程
git push origin 標簽名
一次性推送全部尚未推送到遠程的本地標簽
git push origin --tags
如果標簽已經推送到遠程,要刪除遠程標簽就麻煩一點,先從本地刪除:
git tag -d 標簽名
從遠程刪除
git push origin :refs/tags/標簽名 。刪除命令也是push,格式
使用git checkout tag即可切換到指定tag,例如:git checkout v0.1.0
切換到tag歷史記錄會處在分離頭指針狀態,這個是的修改是很危險的,在切換回主線時如果沒有合并,之前的修改提交基本都會丟失,
如果需要修改可以嘗試git checkout -b 分支名 tag 創建一個基于指定tag的分支,例如:git checkout -b tset v0.1.0 這個時候就會在分支上進行開發,之后可以切換到主線合并
git checkout -b branch_name tag_name
Gitflow工作流
Snip20170404_18.png