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

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

如何從另一個分支中獲取一個文件

如何從另一個分支中獲取一個文件

Git
臨摹微笑 2019-07-31 11:17:36
如何從另一個分支中獲取一個文件我正在使用git并在master分支上工作。這個分支有一個名為的文件app.js。我有一個experiment分支,我做了一堆變更和大量的提交。現在我希望把做只對所有變化app.js從experiment到master分支。我怎么做?再一次,我不想合并。我只是想把所有的變化app.js從experiment分支帶到master分支。
查看完整描述

3 回答

?
倚天杖

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

git checkout master               # first get back to master

git checkout experiment -- app.js # then copy the version of app.js 

                                  # from branch "experiment"

另請參閱git如何撤消一個文件的更改?

正如JakubNar?bski在評論中提到的那樣:

git show experiment:path/to/app.js > path/to/app.js

也可以工作,除了如SO問題“ 如何從Git中的特定修訂中檢索單個文件? ”中詳細說明的那樣,您需要使用repo根目錄中的完整路徑。
因此,Jakub在他的例子中使用了路徑/ to / app.js。

正如Frosty在評論中提到的那樣:

你只會獲得app.js的最新狀態

但是,對于git checkout或者git show,您實際上可以引用您想要的任何修訂,如SO問題“ git gui中文件的git checkout修訂版 ”所示:

$ git show $REVISION:$FILENAME$ git checkout $REVISION -- $FILENAME

將是相同的是$ FILENAME是版本化文件的完整路徑。

$REVISION可以如下所示git rev-parse

experiment@{yesterday}:app.js # app.js as it was yesterday 

experiment^:app.js            # app.js on the first commit parent

experiment@{2}:app.js         # app.js two commits ago

等等。

schmijos 在評論中補充道:

你也可以從藏匿處做到這一點:

git checkout stash -- app.js

如果您正在處理兩個分支并且不想提交,那么這非常有用。


查看完整回答
反對 回復 2019-07-31
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊


一切都更簡單,使用git checkout。


假設you're on master分支,得到app.js from new-feature分支做:


git checkout new-feature path/to/app.js


// note that there is no leading slash in the path!

這將為您帶來所需文件的內容。您可以像往常一樣使用sha1的一部分而不是 新功能 分支名來獲取該特定提交中的文件。


查看完整回答
反對 回復 2019-07-31
?
GCT1015

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

補充VonC和chhh的答案。


git show experiment:path/to/relative/app.js > app.js

# If your current working directory is relative than just use

git show experiment:app.js > app.js

要么


git checkout experiment -- app.js


查看完整回答
反對 回復 2019-07-31
  • 3 回答
  • 0 關注
  • 1476 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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