簡體   English   中英

無法從本地計算機中的特定提交ID git拉取相同的文件?

[英]failed to git pull same file from specific commit id in local machine?

ENV:

  • macOS 10.13.5

Git初始化並在本地計算機中推送更改的文件

注意:XXX是本地計算機的用戶名

    ➜  gittest git init
    Initialized empty Git repository in /Users/XXX/Desktop/gittest/.git/
    ➜  gittest git:(master) echo "hello" > 1.md
    ➜  gittest git:(master) ✗ git add 1.md
    ➜  gittest git:(master) ✗ git commit -m"hello"
[master (root-commit) ea37549] hello
 1 file changed, 1 insertion(+)
 create mode 100644 1.md
    gittest git:(master) ✗ git push --set-upstream /Users/XXX/Desktop/gittest/.git/ master
    Branch 'master' set up to track remote branch 'master' from '/Users/XXX/Desktop/gittest/.git/'.
    Everything up-to-date
    gittest git:(master) ✗ echo "hello 2" >>1.md # change files
    ➜  gittest git:(master) ✗ git add 1.md
    ➜  gittest git:(master) ✗ git commit -m"hello 2"
[master 4593958] hello2
 1 file changed, 1 insertion(+)
    ➜  gittest git:(master) ✗ git push
    Everything up-to-date

Git拉第一個提交文件但失敗

➜  gittest git:(master) git pull
From /Users/XXX/Desktop/gittest/
 * branch            master     -> FETCH_HEAD
Already up to date.

但是它無法返回最初提交給git push的文件。

預期

  • Git提取具有指定提交ID的文件,並覆蓋具有相同名稱的原始文件。
  • 我不想使用遠程服務器或存儲庫(例如Github)。請不要提供任何解決方案。
  • 我不想創建另一個分支並將其合並。 我只想在master分支中完成目標。

你有很多事情混在一起

git init創建完整的存儲庫,因此git commit是在該存儲庫中創建修訂的命令。

git push用於將更改發送到其他存儲庫。 實際上,您只是通過推送創建了對同一存儲庫的自引用。 因此,所有內容都是最新的,因為您正在嘗試更新存儲庫本身。

git pull用於從其他存儲庫獲取更改,並且默認情況下是git fetch (更新有關遠程存儲庫的本地知識)和git merge的快捷方式,以合並嘗試合並當前分支與遠程存儲庫中分支的更新的本地知識。

如果您不想處理遠程存儲庫,請不要使用git pullgit push

四處走動

要移至存儲庫中的特定提交,請使用git checkout 但是要注意, git checkout <commit id>最終將處於分離的HEAD狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM