git添加也添加其他项目的更改

时间:2018-07-12 17:52:24

标签: linux git github version-control git-add

我正在尝试使用 <ol> {this.state.questions.map((question, index) => { return ( <li> <div key={uuid()}> Question {question}<br /> <button onClick={ () => this.removeItem(index) }> Remove Question </button> Answer Choices<br /> {Array.from({ length: 4 }, () => ( <div key={uuid()}> <input type="checkbox" /> <input type="text" onChange={this.handleChange} /> </div> ))} </div> </li> ); })} </ol> 将所有更改的文件添加到GitHub,但是它还会添加我在其他本地项目上所做的更改。理想情况下,应该添加同一项目的更改。

应如何解决?

运行git add .时,我看到了git status那些多余的文件。 图片:

enter image description here

enter image description here

4 个答案:

答案 0 :(得分:0)

每个回购都在其自己的目录中。然后,当您cd myproject并运行git add .时,它只应添加此存储库中更改的文件。

答案 1 :(得分:0)

通过Project,如果您是指同一仓库中的其他文件目录,则应使用以下命令之一来满足您的需求

对于 Git版本2.x


  • git add -A阶段全部

  • git add .进行新的和修改的阶段,未删除

  • git add -u阶段已修改和删除,没有新的


详细信息:

git add -A等效于git add .; git add -u

关于git add .的重点是,它会查看工作树并将所有这些路径添加到已分阶段的更改(如果它们已更改或是新的且未被忽略),它不会分阶段执行任何“ rm”操作

git add -u查看所有已经跟踪的文件,并对这些文件进行更改(如果它们不同或已被删除)。它不会添加任何新文件,只会将更改转移到已跟踪的文件中。

git add -A是完成这两项操作的便捷捷径。

您可以使用以下类似方法测试差异(请注意,对于Git 2.x版,git add . git status 的输出将有所不同):

git init
echo Change me > change-me
echo Delete me > delete-me
git add change-me delete-me
git commit -m initial

echo OK >> change-me
rm delete-me
echo Add me > add-me

git status
# Changed but not updated:
#   modified:   change-me
#   deleted:    delete-me
# Untracked files:
#   add-me

git add .
git status

# Changes to be committed:
#   new file:   add-me
#   modified:   change-me
# Changed but not updated:
#   deleted:    delete-me

git reset

git add -u
git status

# Changes to be committed:
#   modified:   change-me
#   deleted:    delete-me
# Untracked files:
#   add-me

git reset

git add -A
git status

# Changes to be committed:
#   new file:   add-me
#   modified:   change-me
#   deleted:    delete-me

答案 2 :(得分:0)

根据您提供的图像,您似乎应该在Silencio目录中。 Git向您显示您有未跟踪的文件。

尝试一下:

cd ~/Silencio
git status

输出将显示该目录只有更改。

答案 3 :(得分:0)

我查看了您上传的图像,看来您的git设置很奇怪。

我看到您位于文件夹~/AndroidStudioProjects/ApiExample/中。这是您的项目目录吗?

但是看起来您已经在主目录(即~/)中初始化了一个git存储库,并且在当前路径中运行git status时,它显示了与该主目录路径相关的所有内容。

在我看来,您不应该这样做,并且应该为每个项目维护一个独立的独立git存储库。

我建议解决此问题的方法是从家中删除.git目录。我想您的主目录根目录中没有任何有效的项目吗?

  1. 首先将路径更改为主目录:

    cd ~

  2. 然后在需要时对.git文件夹进行备份。

    cp -r .git .git-backup

  3. 然后将其删除。

    rm -rf .git

  4. 现在回到您的AndroidStudioProjects,那里也不应该有git存储库。

    cd AndroidStudioProjects

  5. 删除.git文件夹。

    rm -rf .git

  6. 最后,转到您的ApiExample项目文件夹,并在此处初始化一个新的git存储库。

    git init

现在一切都很好。但是您应该知道,这只是清除混乱的建议。如果您的主目录或AndroidStudioProjects目录中确实有一个有效的git存储库,则需要使用Git Submodules

希望有帮助。随时提出任何疑问。