git - 使用 git 仅提交一组文件中的部分更改
问题描述
我正在使用一个生成一堆 .xml 文件的工具。所有文件都包含特定的文本块。
例如:
<classAccesses>
<class>TestClass</class>
<enabled>false</enabled>
</classAccesses>
此文本将以这种确切格式存在于大约 100 个不同的文件中,但是:
- 它将位于每个文件中的不同行号。
- 这些文件还将包含我不想提交的其他差异
所以我只需要在所有 100 个文件中提交这块文本,不需要其他更改。这可能吗?
解决方案
如果当前没有工作答案,我将我的工作流建议作为答案发布,因为这在 git 中很简单。
选项 1:GIT 存储
您可以推迟 git stash 缓存中文件的所有当前更改。之后,文件等于以前的结帐状态。
假设您有一个回购“myrepo”并在某天检查了它:
cd /home/me
git clone gihub.com/myrepo
cd myrepo
然后您对签出的文件进行了更改
vi file1.txt
vi file2.txt
一段时间后,您需要对 file1.txt 和 file3.txt 应用一些特殊更改。
您可以执行以下工作流程:
git stash push
vi file1.txt
vi file3.txt
git add .
git commit -m "super fast preferred changes"
git push
git stash pull
现在处理你最后的工作更改。
选项 2:第二次结帐
另一种选择是将 repo 签入第二条路径并仅进行其他更改:
cd /home/me
git clone gihub.com/myrepo myrepo-2nd
cd myrepo-2nd
现在,您可以执行以下工作流程:
vi file1.txt
vi file3.txt
git add .
git commit -m "super fast preferred changes"
git push
之后,您可以删除第二个签出的文件并继续您的第一个签出:
cd ..
rm -rf myrepo-2nd
cd myrepo
要从您首选的先前提交中获取所有更改:
git pull
现在继续你的工作。
推荐阅读
- reactjs - 如何根据反应js中的内容设置计数
- github - GitHub 的审核日志如何为不同的事件分配位置?
- python - 从 .tar.gz 中提取 json 文件列表
- linux-kernel - 不小心删除了内核模块,不知道如何重新启用
- flutter - 如何在 Flutter 中将德语字母从 csv 转换为 uft8
- python - 在Django中实现无限滚动期间对内容进行排序以反转
- reactjs - 即使在使用 OnChange 侦听器并更新状态后也无法编辑表单
- c - 如何通过在 C 中丢帧来降低传入流的 fps
- r - 同时使用ggplot进行分组和着色
- java - 当我们在 linux 中为 selenium 执行“mvn test”时,不会创建日志文件夹