好久沒有使用git了,突然項(xiàng)目中采用git 發(fā)現(xiàn)很多的命令都忘記了,于是就有了這篇文章,果然好記性不如爛筆頭?。?/p>
git 全終端命令
git clone xxxx 從xxx 上下載代碼
git branch -a 查看所有分枝和主干
git branch -l 查看本地分枝
git branch -r 查看遠(yuǎn)程分枝
git rm raindow -r -f 刪除raindow文件夾以及其下所有的文件
分枝操作
基本操作
git branch demo 命令創(chuàng)建新分支
git push origin demo:demo 將創(chuàng)建的本地分枝推到遠(yuǎn)程上
git checkout -b demo 創(chuàng)建一個(gè)dev分枝并且切換到分枝dev上
git checkout demo 命令切換到新分支
git branch r 命令查看遠(yuǎn)端庫的分枝情況
git branch -d demo 刪除本地分枝
git push origin --delete xxx 刪除遠(yuǎn)程分枝
git merge demo 把demo分支的更改和master合并
git fetch origin demo:demo 拉起遠(yuǎn)程分枝并且創(chuàng)建本地分枝
重命名遠(yuǎn)程分枝 命令行
原理 在git中重命名遠(yuǎn)程分支,其實(shí)就是先刪除遠(yuǎn)程分支,然后重命名本地分支,再重新提交一個(gè)遠(yuǎn)程分支
git branch -av
git push --delete origin xxx
git branch -m xxx yyy (其中xxx 為原名字,yyy 為新名字)
e.g. : git branch -m devel develop 將devel 命名為develop
gi t push origin develop 將重命名的develop 推送到遠(yuǎn)程上
git 回滾命令
* 未commit 的代碼回滾
* 已經(jīng)添加至緩存區(qū),但是并沒有commit
* 已經(jīng)commit 但是沒有push 的代碼回滾
* 已經(jīng)push的代碼回滾
未commit 的代碼回滾
直接采用 git checkout . 撤銷所有的修改 或者 git checkout xxxx 可以撤銷某一個(gè)文件的全部修改
已經(jīng)添加至緩存區(qū),但是并沒有commit
git reset HEAD <file> 來取消緩存去的修改
已經(jīng)commit 但是并沒有push 的回滾
已經(jīng)push 的回滾
git checkout . 撤銷所有的修改
git revert HEAD 撤銷前一次 commit
git revert HEAD^ 撤銷前前一次 commit
git revert commit-id (比如 fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤銷指定的版本,撤銷也會(huì)作為一次提交進(jìn)行保存。git revert是提交一個(gè)新的版本,將需要revert的版本的內(nèi)容再反向修改回去,版本會(huì)遞增,不影響之前提交的內(nèi)容
git merge 和git rebase 命令功能類似
git checkout -b 2017-08-14release 2017-08-14release
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
Git clone 整個(gè)倉庫后使用 git checkout tag_name 就可以取得該 tag 對(duì)應(yīng)的代碼了。
但是,這時(shí)候 git 可能會(huì)提示你當(dāng)前處于一個(gè)“detached HEAD" 狀態(tài),因?yàn)?tag 相當(dāng)于是一個(gè)快照,是不能更改它的代碼的,如果要在 tag 代碼的基礎(chǔ)上做修改,你需要一個(gè)分支:
git checkout -b branch_name tag_name
這樣會(huì)從 tag 創(chuàng)建一個(gè)分支,然后就和普通的 git 操作一樣了。