Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git add有时在bash脚本中不起作用_Git_Bash - Fatal编程技术网

git add有时在bash脚本中不起作用

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 问题是,有时(通常不足以确定问题所在)脚本会失败,并

别名:另一个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
的一个子集。除此之外,我认为您需要为我们提供一条错误消息,以便我们了解出了什么问题。