亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

git checkout與git reset有啥區別嗎

git checkout與git reset有啥區別嗎

Git
holdtom 2019-03-23 15:15:36
git checkout與git reset有啥區別嗎
查看完整描述

3 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

git checkout主要有三個作用:
第一個就是切換分支。例如你從遠程倉庫clone下來所有的源代碼,你git branch一下會看到你通常是在master,如果你想切換到某一個分支上呢?git checkout <branchname>
第二個就是放棄對某個文件的修改。例如你想放棄對某個文件Hello.cpp的修改,git checkout -- <Hello.cpp>
第三個就是新建一個分支,git checkout <-b> <branchname>,不加-b的話只新建不切換到新的分支上,加-b新建并切換到該分支上

git reset主要是取消上一次的操作,具體用法有很多,說兩個:
第一個取消merge,git reset --hard ORIG_HEAD,這樣會退回到merge前的代碼。
第二個就是取消commit,git eset HEAD~<num> <-soft/-hard>,取消上num次的commit
第三個是將文件從stage(追蹤的庫)中移除,git reset HEAD <filename>

查看完整回答
反對 回復 2019-03-25
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

git reset用于撤銷操作。 

git reset [--hard | --mixed | --soft] [<commit>] 

--hard 會執行下圖中操作123,參數hard會同時改變版本庫的HEAD引用指向,緩存區內的內容,以及工作空間的內容,執行之后HEAD引用會指向commit指向的版本,同時緩存區內的內容也會以版本庫HEAD指向的版本進行刷新,工作空間內的內容也會以HEAD引用指向的代碼版本進行替代。

--mixed 會執行下圖中操作12 在該參數的情況下,工作空間內的內容不會被刷新,只會更新HEAD引用的指向以及緩存區的內容 

--soft 會執行下圖中操作1 只會改變HEAD引用的指向

git checkout一般用于切換分支,也可以用來回退代碼

git checkout branchName切換分支到指定的分支上,使用的時候,需要注意,使用該命令工作空間下的內容會被指定的分支內容覆蓋,在之前分支上面所做的沒有提交的變動會丟失。 如果需要新建一個分支并使用新的分支,我們可以使用git checkout -b dev,這樣我們就新建了一個名為dev的分支,并切換到該分支下面。 

該命令默認以HEAD引用來創建分支,需要需要使用指定的版本號來創建分支,可以在后面跟上版本號。

 


查看完整回答
反對 回復 2019-03-25
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

git checkout -- file;撤銷對工作區修改;這個命令是以最新的存儲時間節點(add和commit)為參照,覆蓋工作區對應文件file;這個命令改變的是工作區
git reset HEAD -- file;清空add命令向暫存區提交的關于file文件的修改(Ustage);這個命令僅改變暫存區,并不改變工作區,這意味著在無任何其他操作的情況下,工作區中的實際文件同該命令運行之前無任何變化

查看完整回答
反對 回復 2019-03-25
  • 3 回答
  • 0 關注
  • 1301 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號