Git:为什么文件删除不同步?

Git:为什么文件删除不同步?,git,Git,我是新手。我有两个linux工作站,WS-A和WS-B 我在WS-a上有一个项目,然后将其推送到bitbucket上的远程回购 然后我在WS-B上git clone,由于某些原因,我在WS-B上做了一些修改并删除了一些文件,然后在WS-B上再次推送 但是我很困惑,现在在WS-A上,当我做一个git pull时,删除的文件仍然存在!!我该怎么办?我100%确定我希望删除它们。我是这个代码的唯一用户。我只想保留一个版本。是的,您必须使用git rm,否则工作副本上的文件已被删除,而不是从存储库中删除

我是新手。我有两个linux工作站,WS-A和WS-B

我在WS-a上有一个项目,然后将其推送到bitbucket上的远程回购

然后我在WS-B上
git clone
,由于某些原因,我在WS-B上做了一些修改并删除了一些文件,然后在WS-B上再次推送


但是我很困惑,现在在WS-A上,当我做一个
git pull
时,删除的文件仍然存在!!我该怎么办?我100%确定我希望删除它们。我是这个代码的唯一用户。我只想保留一个版本。

是的,您必须使用
git rm
,否则工作副本上的文件已被删除,而不是从存储库中删除<代码>git状态应将文件显示为“已删除”,但不准备提交<代码>吉特rm;git提交和
git推送
它们,然后
git从另一个框中拉出
,它们就会消失。

一个具体的例子应该可以帮助开发人员努力从已删除的、被git标记为“已删除”的repo中清除文件。如果您不永久删除那些“已删除”的文件,每次您执行
Git状态时,Git都会向您显示它们。当有许多“已删除”的文件挂起时,很难从git status读取输出

1)使用
git status
检查您的回购协议状态:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
    (use "git add/rm <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in working directory)
        deleted:    repoDir/subDir/Info.plist
        deleted:    repoDir/subDir/MacOS/CrashLogDemo
        deleted:    repoDir/subDir/PkgInfo...

no changes added to commit (use "git add" and/or "git commit -a")
3)使用
git Commit-m
通过注释提交更改:

$ git commit -m "Removed unncessary files."
[master 9178ad4] Removed unncessary files.
    28 files changed, 2377 deletions(-)
    delete mode 100644 repoDir/subDir/Info.plist
    delete mode 100644 repoDir/subDir/MacOS/CrashLogDemo
    delete mode 100644 repoDir/subDir/PkgInfo...
4)
git将更改推送到相应的回购/分行:

$ git push origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 291 bytes | 291.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/accountName/CrashLogDemo.git
    f4716fa..9178ad4  master -> master

5)最后,当其他用户执行
git pull
时,不必要的文件将从本地文件中删除。

您是否提交了删除操作?是的,我在WS-BOn上提交了您在WS-a上使用的同一个分支?你能再展示一些命令吗?因为我是唯一的代码开发人员,所以我想保持简单,所以所有工作站和远程repo只有一个分支,那就是
master
branch。也许你在文件上使用了
rm
而不是
git rm
。谢谢!为什么git不能“自动检测”哪些文件被删除并将其安全地保存在“回收站”之类的地方?为什么
文件删除
的操作必须不同于
文件修改
文件创建
?git确实将其保存在各种各样的回收站中,这就是为什么如果你只是
rm
一个文件,直到你
git rm
它才真正消失的原因。即使这样,您仍然可以通过在历史中追溯到文件被删除之前的位置来恢复文件。这就是版本控制的魔力!谢谢你的编辑。我没意识到StackOverflow编辑器这么聪明。
$ git push origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 291 bytes | 291.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/accountName/CrashLogDemo.git
    f4716fa..9178ad4  master -> master