git:使用git commit还是git stash?

时间:2014-01-02 14:28:51

标签: git github bitbucket

我试图用git pull命令从存储库中提取数据。这个命令给了我一个错误

error: Your local changes to the following files would be overwritten by merge:

        public_html/sites/file
        public_html/sites/file1.txt
        public_html/sites/file2.txt
Please, commit your changes or stash them before you can merge.
Aborting

为了解决这个问题,我使用了以下两个命令。

   Step1
    1)git add .
    2)git commit -m "my first commit"

然后我做了

   step2
    git pull origin master

现在everthing工作正常,但问题是我错误地在step1中提交了一些文件(通过使用命令“git add。”和git commit -m“我的第一次提交”)“。

现在如果假设我发出了“git push origin master”命令,则那些不需要的文件(在步骤1中提交)将被推送到存储库。

我不希望将这些不需要的文件(在步骤1中提交)推送到存储库。

2 个答案:

答案 0 :(得分:2)

您要重置提交,以便只添加您想要推送的文件,

git reset --soft HEAD^ 

然后你要删除意外添加的文件,

git rm --cached list_of_files_you_added_accidentally

再次提交,

git commit -m "your commit message"

或者,取消暂存所有文件并仅添加您想要推送的内容,

git add file_1 file_2 ...

答案 1 :(得分:2)

如果您所做的唯一提交是“我的第一次提交”,并且您想从中排除某些文件,则可以执行以下操作:

git reset --hard           # undo the pull
git reset --mixed HEAD~    # undo the commit, unstash all the files
git add file1, dir2 ...    # add just the files you want

git commit -m "some msg"   # then commit and push as normal...
git pull origin master
git push