如果不打算提交,使用Git跟踪文件是否有用?

3

我在当前项目中第一次使用Git。在修改文件时,我将它们保持为未跟踪状态,然后在准备好提交时再进行提交。

这对我来说似乎很好,但在准备提交之前将它们保持为未跟踪状态是否存在缺点?

4个回答

2

好的,缺点是Git不知道它们,因此无法保护您。如果您使用git add将文件添加到索引中,则Git已经在其对象数据库中存储了该文件的内容。因此,当时的内容已备份。如果您现在因为任何原因在工作目录中丢失了该文件,则Git仍然在索引中存储了该内容,并且您仍然可以提交它。这适用于跟踪和未跟踪文件的更改。

总的来说,您应该尝试习惯于使提交更小并更频繁地提交。提交“未完成”或“不完美”的东西并不可耻。当然,如果您能很好地控制它,您总是会更喜欢那些完美的提交,但是如果您无法做到这一点,也没关系。因此,不要等待文件“完成”,而是提交其中状态。如果这导致您最终出现混乱,您仍然可以变基您的注释以清理历史记录(当然,只有在尚未推送时才进行变基)。


0

取决于情况,

  • 在提交之前进行变基非常容易
  • 您也可以修改最后一次提交,但这不是您应该采用的工作流程
  • “在完成之前不提交”仅适用于您正在处理的功能的小部分 - 这样您就可以拥有有意义的提交消息,而不是带有“Feature X at y% done”消息的100个提交。IDE的视觉提示在这里也非常有帮助。

0
我认为最好的方法是至少提交两次:开始工作时和结束工作时。
首先,这样会更容易跟踪您的更改,尤其是在有许多文件或提交之间的时间跨度超过1个工作日时。如果您在版本控制(GIT)中有更改,则始终可以看到它们,将它们与其他版本进行比较,需要时返回到它们并检查进行了哪些更改。如果文件未被跟踪,则没有历史记录,只有最终版本。
其次,如果出现意外情况(例如停电),而您的更改未被跟踪且文件被破坏,则它们将完全丢失。如果在GIT中有一些未完成的版本,则只会丢失一天或更少的工作。
tl;dr:每几个小时提交一次以保存工作;将文件保留未跟踪状态在一天或更短时间内是可以的。

0

缺点是你可能会丢失文件。

我主要采用的方法是始终在分支上工作,进行多次提交,最后准备好提交到主分支时,只需一次提交。

另一种方法是使用wip(正在进行的工作)提交,结合交互式变基,可以帮助解决早期和经常提交的愿望以及只提交完成工作的愿望。

这样你就可以做到:

# work (edit files)
git add and git commit -m"wip"
# work (edit files)
git add and git commit -m"wip"
# work (edit files)
git add and git commit -m"wip"
git rebase -i HEAD # bring up an editor

现在使用 squash 命令将这三个提交合并成一个更有意义的描述。

现在你只有一个提交,可能已经注释,可以直接与其他提交进行差异比较。

关于交互式变基的一些注意事项:

  • 起初不太直观
  • 容易出错。要小心慢慢来,并仔细阅读所有帮助信息
  • 在整个存储库的副本上使用之前先练习一下
  • 考虑在最初几次使用时制作整个存储库的副本(磁盘空间很便宜)
  • 通常每次只做一个提交,保存并退出,然后重新进入会更容易

注意:当文件中包含即将被删除的个人或私人信息时,有一种情况是不添加文件的好时机。最好永远不要让这些信息出现在 git 中,否则人们可能会在历史记录中挖掘这些信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接