平时都是 git add,git commit,git push,再或是 git status ,今天上 github 看了下才发现删除本地文件时忘记 git rm,导致 github 上有很多兀余文件,总不能一个一个删除,请教应该怎样将远程库的兀余文件删除
ps:难道只能 git rm *,然后再将本地文件 git push
ps:难道只能 git rm *,然后再将本地文件 git push
1
cxbig Oct 22, 2015
是的, git rm > git commit > git push
|
2
Mr2 Oct 22, 2015
force push
|
3
loddit Oct 22, 2015
我的建议是首先装一个 branch 是否 dirty 的检测工具,及时了解当前 branch 状态。
另外如果你删除的文件没有在 gitignore 里,那 git status 的时候会就显示出你已经删除的文件。 比如: ``` On branch master Your branch is ahead of 'origin/master' by 6 commits. (use "git push" to publish your local commits) 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: test.py ``` 这样的信息,这时你可以 commit 带上这个文件,就会在 commit 里把这些文件删除了。 |
4
loddit Oct 22, 2015
囧 没有预览,似乎 markdown 语法错了
``` test markdown ``` |
5
chairuosen Oct 22, 2015
用 sourceTree 管理
|
6
ceyes Oct 22, 2015
git 本地比远程新怎么办 ?
push 上去啊,开发流程不就是如此么。。。 你本地删除了被 git 追踪的文件,此时 git status 肯定不是 clean 的,无法 pull && push ,当然需要 git rm <your files>; git commit ,要明白 git push 的是 commit ,不是文件。所有文件改动都是通过 commit 来进行的。 如果想修整 commit (比如重写、合并、丢弃某些 commit ,或调整 commit 顺序),可以用 rebase ,再 git push --force 。你那想彻底删除文件及 commit 的需求可以通过 rebase 实现 —— 先合并 add file 和 rm file 的 commit ,再丢弃之,但要保证后续 commit 的可以正确的 apply ,取决于你的一个个 commit 是否够独立、逻辑清晰。 |
7
lincanbin Oct 23, 2015 via Android
用个带 GUI 的 git 客户端吧,不知道为什么很多人明知道有提高效率的工具,却一直不肯用。
|
8
fengyqf Oct 23, 2015
是不很明白楼主的意思,是不是这样:
git 跟踪的文件里有个 file.txt ,你在某次提交时,直接在本地磁盘里删除了它,而不是 git rm file.txt ,然后继续提交。 但突然发现 github 上这个文件还在,你想删除了它 如果是,继续看下面: 在本地 git status 时,是不是有 Changes not staged for commit: ..... deleted: test.py 这样一行,确认一下,这些文件是不是都是需要在远程上删除的,如果是,请运行 git add -u (或者运行 git add test.py ;注意,你没看错,是 add ) 然后这些文件将在下次提交时从 git 仓库里移除; push 后远程仓库上也没有了 (按前面方法, git 历史里还有这个文件,还可以 checkout 出来,如果想从历史里彻底删除,请参看 git pro https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E5%86%99%E5%8E%86%E5%8F%B2#%E6%A0%B8%E6%AD%A6%E5%99%A8%E7%BA%A7%E9%80%89%E9%A1%B9%EF%BC%9Afilter-branch ) |
10
joshz Oct 23, 2015 via Android
以前好像碰到同样的问题,搜 SO 解决的
|
11
honmaple OP 不好意思,是我的错,因为我是用框架在外部目录生成文件,然后编辑调试好后复制到本地仓库覆盖原文件,再上传的,没想到有的文件没有被覆盖,也没被删除,留了下来,今天将所有文件夹看了遍后才发现,多谢各位的回答
|