VS Code Git求助,关于暂存更改

image

“暂存的更改”按字面意思应该是把更改保存在本地,不提交给服务器吧?

然而点击“提交并推送”之后,VS Code会把“暂存的更改”全部提交到服务器,反而下方的“更改”保留在本地不提交。所以这是我的理解有误吗?还是中文翻译错误?或者是全语种都存在的bug?

从下往上,依次是 modify 但未 stage changes、stage changes 但未 commit、commit 并 push
切换语言就懂了

用英文,应该看得更明白一些吧,至少能跟git命令都对上。我猜你上面“暂存的更改”应该是staged changes的意思。“提交并推送”应该是 commitpush 两个操作吧。

可能你对git的工作方式理解还有偏差。提交 (commit) 是本地的动作。推送 (push) 才是把本地的 commits 推送到服务器。

初次接触git听到“暂存”第一时间会想到的意思多半是pending吧?感觉遇到了翻译刺客呀 :rofl:

另外误解可能也与VS Code的“贴心”操作有关。因为我之前都是不经历stage步骤直接commit & push,变更也都反映在服务器了,现在看来应该是VS Code在这种情况下贴心地帮我“先自动stage全部变更再push“了

看来这个作者对“暂存”这个词的理解跟我是一样的,但不是VS Code翻译人员理解的“暂存” :joy:

这里需要按照 Git 的名词解释来理解,更改就是只进行了文件更改,没有git操作,暂存的更改对应git add,提交并推送,对应两步 git commit && git push。

这其实不是翻译的问题,因为Git本身的操作逻辑就是如此“怪异”。

我记得如果你不手动点加号直接提交,首次使用会问你直接提交与否,若选的是的话那以后好像就不问了。

早先学用Git的时候对这个翻译也是一脸懵…但是如果抛开翻译,界面操作逻辑其实是正确的:

  • 若add了文件:
    只提交add的文件
  • 若没有add:
    栏内所有修改都提交

有时候还挺方便的(