我将git存储库克隆到我的本地计算机中 我替换了我物理位置的四个文件。 执行
git status
产生以下结果
在分支XXX上 未提交更改的更改: (使用" git add ..."更新将要提交的内容) (使用" git checkout - ..."放弃工作目录中的更改)
modified: ABC.xml
modified: XYZ.java
modified: DBCD.java
modified: sdfsd.java
没有为提交添加任何更改(使用" git add"和/或" git commit -a")
此后,我
git add --all
获取以下消息:
warning: LF will be replaced by CRLF in ABC.xml.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in XYZ.java.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in DBCD.java.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in sdfsd.java
The file will have its original line endings in your working directory.
现在我做的时候
git status
以下显示的消息似乎表明git已丢失了文件的跟踪。它们不会出现在要提交的更改部分
下On branch XXX
nothing to commit, working directory clean
此外,这四个文件变为只读模式。
另外,git whatchanged并不表示文件已提交。
不确定我在做什么错?我应该承诺吗? 此外,当
时会发生什么git add --all
发生了吗?
更新:我再一次改变了整个过程。而不是使用
git add --all
我用过
git add ABC.XML
即使是现在,也会发生类似的事情。 ABC.XML文件未显示在要提交的更改部分下。 Git Status不显示ABC.XML的状态,但是所有其他文件仍显示在git Status
上答案 0 :(得分:2)
这是您的行结束转换设置的结果。您的工作目录中的文件具有与上次提交中存储的行不同的行结尾,因此对于git status
,它们看起来是不同的文件(大小不同,散列不匹配)。但是,当您执行git add
并转换行结尾以便将文件添加到存储库时,它会发现转换后的文件与上次提交的文件匹配,这意味着没有更改文件。 git add
的副作用是使用文件的当前时间戳更新索引,因此在git status
看到时间戳未更改且未更改后git add
检查第二次运行时的大小和哈希值。
您可以运行比较git diff
和git diff -b
的输出(忽略空白/行结束更改)以查看差异 - 至少在git add
之前......
答案 1 :(得分:0)
如果我理解你的问题。
如果您要提交4个文件。那你就可以做到。
git commit -a
所有修改过的文件将立即提交,作为单个提交(One SHA)
答案 2 :(得分:0)
我现在意识到了一个事实,我应该在这里提一下。这对我来说似乎无关紧要。这个活动的大局是我正在将代码库从ClearCase迁移到Git。上周我迁移了完整的代码库,但本周我被告知,其中有四个已迁移的代码库文件未被我合并。所以这些文件是由第三人合并的。 我今天更新了我的代码库并执行了复制粘贴方法。 我没有退房就从机器上的VOB复制了文件。文件处于只读模式。
文件在我放入我的本地GIT存储库并运行git add
之后仍然是只读的,然后在他的回复中引用了@twalberg,git add尝试转换行结尾但是因为文件被读取而无法执行只要。该命令终止,我猜这些文件在没有人的土地中谚语,因此git status不显示该怎么做。
我需要在Clearcase中签出这些文件,然后尝试复制粘贴。