【问题标题】:failed to git pull same file from specific commit id in local machine?无法从本地机器中的特定提交 ID 中提取相同的文件?
【发布时间】:2018-12-07 06:27:29
【问题描述】:

环境:

  • macOS 10.13.5

Git init 并在本地机器中推送更改的文件

注意: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 git-pull


【解决方案1】:

你把很多事情搞混了

git init 创建一个完整的存储库,因此git commit 是在该存储库中创建修订的命令。

git push 用于将更改发送到其他存储库。实际上,您只是通过推送创建了对同一存储库的自引用。因此,一切都是最新的,因为您正在尝试更新存储库本身。

git pull 用于从 other 存储库中获取更改,默认情况下是 git fetch(更新有关远程存储库的本地知识)和 git merge 合并的快捷方式尝试合并当前分支与远程存储库中分支的更新本地知识。

如果您不想处理远程存储库,请不要使用git pullgit push

在 Git 中移动

要移动到存储库中的特定提交,请使用git checkout。但请注意,git checkout <commit id> 最终会处于分离的 HEAD 状态。

【讨论】:

    猜你喜欢
    • 2017-02-22
    • 2010-11-26
    • 2023-03-25
    • 2011-06-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多