git add有时在bash脚本中不起作用
别名:另一个git问题。 在我工作的地方,我们有一个非常不寻常的工作流,所以我构建了一个gui来管理提交git add有时在bash脚本中不起作用,git,bash,Git,Bash,别名:另一个git问题。 在我工作的地方,我们有一个非常不寻常的工作流,所以我构建了一个gui来管理提交 #!/bin/bash cd /my/git/repo/ git add -u git add -A git commit -m $1 git pull git push git status 然后,我通过单击webUI上的提交按钮来运行该脚本,该按钮仅使用phps shell_exec运行该bash脚本,并将git状态输出返回到gui 问题是,有时(通常不足以确定问题所在)脚本会失败,并
#!/bin/bash
cd /my/git/repo/
git add -u
git add -A
git commit -m $1
git pull
git push
git status
然后,我通过单击webUI上的提交按钮来运行该脚本,该按钮仅使用phps shell_exec运行该bash脚本,并将git状态输出返回到gui
问题是,有时(通常不足以确定问题所在)脚本会失败,并响应目录中仍有未老化的文件,从那里开始,工具会被破坏,直到手动添加/提交完成
(当我可以复制一个漂亮干净的时,将发布一条错误消息)
在add中使用--force可以解决这个问题,但是--force也会忽略。gitignore,我希望不使用-f来解决它
有没有一种方法可以在仍然尊重.gitignore的情况下强制添加目录
谢谢你的时间
编辑:这里是错误
[master e02cb4b] test 2 files changed, 6 insertions(+), 3 deletions(-)
Already up-to-date.
On branch master Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: ANN/ANN3_1/ann-styles-varB.css no changes added to commit
(use "git add" and/or "git commit -a")
谢谢你的评论 我们发现错误是由硬件限制引起的,并通过将该工具镜像到具有更快硬盘驱动器/raid阵列的服务器来解决,因为程序员可以在提交和推送之间更新文件,或者可以锁定devboxs糟糕的硬盘驱动器 因此,解决方案不是在代码中,但我确实将git add更改为单个
git add -A .
现在工作完美无瑕
--强制
在哪个添加?你干吗要在犯罪前抽离?这不应该是另一种方式吗?您是否担心在这个过程中的任何时候都需要进行合并?在我看来,您在开始添加更改之后但在提交之前进行合并是不寻常的。为什么要这样做?关于工作流:不,我们是一家a/b测试公司,该存储库中的每一段代码都是独立运行的,只有一个分支,cherry可以自动选择一个文件夹并将其移动到生产服务器。这不是一个常见的工作流,但它对我们来说是最好的,因为工作版本控制的性质将是使用正常git工作流选项的一个大障碍。evinL我一直在玩拉的地方,通常它会在提交之后进行,但似乎没有多大区别。我可以用git add--force-A替换这两个add。它100%工作,但不尊重.gitignore——将一堆osx不可见的垃圾文件添加到存储库中。我可以通过cron作业每隔几分钟清理一次目录来解决这个问题,但这似乎是错误的解决方案。我在提交之后进行了回拉,这似乎没有任何区别。我同意应该在提交之后进行回拉,否则在发生合并冲突时可能会弄乱工作目录。此外,git add-u
似乎是多余的,因为它只是git add-a
的一个子集。除此之外,我认为您需要为我们提供一条错误消息,以便我们了解出了什么问题。