git推送未跟踪的文件
我已经发表了一些评论,但我认为我已经提出了一个相当基本的解决方案——您需要“挤压”自上次推送以来的提交git推送未跟踪的文件,git,github,git-push,git-track,Git,Github,Git Push,Git Track,我已经发表了一些评论,但我认为我已经提出了一个相当基本的解决方案——您需要“挤压”自上次推送以来的提交 识别远程服务器上的最后一次提交。您可以使用git log--oneline来完成这项工作,并使用它旁边的origin/master查找提交。然后复制commit的ID,它是行首约7个字符的十六进制字符串 git reset COMMIT(例如,git reset abcdef0)将删除所有提交并“取消存储”。这意味着自该提交(包括该提交)以来所做的所有更改都将从Git中删除,但保留在您的文件系
git log--oneline
来完成这项工作,并使用它旁边的origin/master
查找提交。然后复制commit的ID,它是行首约7个字符的十六进制字符串git reset COMMIT
(例如,git reset abcdef0
)将删除所有提交并“取消存储”。这意味着自该提交(包括该提交)以来所做的所有更改都将从Git中删除,但保留在您的文件系统中稍微有点程序化的版本:
$ git status
On branch master
Your branch is ahead of 'origin/master' by 8 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
$ tree
.
├── README.md
├── README.txt
├── check.py
├── check_old.py
├── code.py
├── genome-scores.csv
├── genome-tags.csv
├── links.csv
├── movies.csv
├── old_code.py
├── ratings.csv
├── read_py.py
├── tags.csv
├── test_rmse.csv
└── train_rmse.csv
我已经发表了一些评论,但我认为我已经提出了一个相当基本的解决方案——您需要“挤压”自上次推送以来的提交
git log--oneline
来完成这项工作,并使用它旁边的origin/master
查找提交。然后复制commit的ID,它是行首约7个字符的十六进制字符串git reset COMMIT
(例如,git reset abcdef0
)将删除所有提交并“取消存储”。这意味着自该提交(包括该提交)以来所做的所有更改都将从Git中删除,但保留在您的文件系统中稍微有点程序化的版本:
$ git status
On branch master
Your branch is ahead of 'origin/master' by 8 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
$ tree
.
├── README.md
├── README.txt
├── check.py
├── check_old.py
├── code.py
├── genome-scores.csv
├── genome-tags.csv
├── links.csv
├── movies.csv
├── old_code.py
├── ratings.csv
├── read_py.py
├── tags.csv
├── test_rmse.csv
└── train_rmse.csv
前两个被跟踪了还是我错了?git状态的输出是什么?@m_uuuu错误不是由前两个文件引起的。它们是在以前的提交中添加并删除的吗?@KevinHoerr是的,如何解决它。请参阅@KevinHoerr的答案;但最重要的是,不要把
gitpush
看作是推送文件,因为它不是这样做的。它推送提交。提交包含文件,因此文件确实会到达那里,但推送是基于提交的。提交没有跟踪或未跟踪的文件;提交只有文件,或者没有文件。你现有的提交确实有这些文件,这就是问题所在。前两个被跟踪了,还是我错了?git状态的输出是什么?@m_uuuu错误不是由前两个文件引起的。它们是在以前的提交中添加并删除的吗?@KevinHoerr是的,如何解决它。请参阅@KevinHoerr的答案;但最重要的是,不要把gitpush
看作是推送文件,因为它不是这样做的。它推送提交。提交包含文件,因此文件确实会到达那里,但推送是基于提交的。提交没有跟踪或未跟踪的文件;提交只有文件,或者没有文件。您现有的提交确实包含这些文件,这就是问题所在。
# get sha1 revision of origin/master and reset to that
git reset $(git rev-parse origin/master)
# git add via patch, so you can moderate what you add
git add -p
git commit
git push