Git之修改文件不能直接成功提交

在工作区修改文件后,能直接提交成功吗?答案不能,如何验证呢?

1. 未修改文件内容前查看提交日志

  • $ git log
  • $ git log --stat



2.文件修改,并进行差异比对

1)添加内容到文件中  $ echo "Nice to meet you." >>welcome.txt
2)比较修改后文件与版本库中的文件差异 $ git diff,执行后结果显示分析

  • $ git diff     命令
  • diff --git a/welcome.txt b/welcome.txt  表示结果为git格式的diff
  • index 18832d3..fd3c069 100644     表示两个版本的git哈希值;index区域的18832d3对象,与工作目录区域的fd3c069对象进行比较;最后的六位数字是对象的模式(普通文件,644权限)
  • --- a/welcome.txt   
  • +++ b/welcome.txt     表示进行比较的两个文件:"---"表示变动前的版本,"+++"表示变动后的版本
  • @@ -1 +1,2 @@    与官方的合并格式diff相同
  •  Hello.         两文件均有"Hello."字符串
  • +Nice to meet you.  变动后的版本有"+Nice to meet you."字符串
  • warning: LF will be replaced by CRLF in welcome.txt.
  • The file will have its original line endings in your working directory.   LF是linux下的换行符,而CRLF是enter + 换行,此信息不用在意,据说如下设置就Okay了:git config core.autocrlf false

3. 文件提交

提交文件 $ git commit -m "Append a nice line."
 -m 参数后面跟字符串:告诉Git本次修改的说明信息。在每次提交的时候注明说明信息。(说明信息为:Append a nice line.)

4. 到底有木有成功提交呢?

1)精简输出查看提交日志 $ git log --pretty=oneline
2)执行差异比较$ git diff可看到与提交之前相同,说明并未提交成功
3)执行$ git status查看文件状态,可看到文件处于修改状态,其输出与 $ git commit基本一致
   参数 -s:显示精简格式的状态输出



5. 结果显然,并未提交成功....

在 MyEclipse 中使用 Git 时,若希望忽略某个文件的更改而不提交,可以通过以下几种方式实现: ### 1. 使用 `.gitignore` 文件忽略未跟踪文件 若某个文件尚未提交Git 仓库,可以通过在项目根目录下创建或修改 `.gitignore` 文件,将需要忽略的文件文件夹路径添加进去。例如: ``` # 忽略所有 .class 文件 *.class # 忽略指定文件 config/local.properties ``` 这种方式适用于尚未加入 Git 版本控制的文件。一旦文件被加入 Git 跟踪后,`.gitignore` 文件将不再对其生效[^1]。 ### 2. 忽略已提交文件的更改(使用 `git update-index --assume-unchanged`) 对于已经提交Git 仓库的文件(如配置文件 `config.properties`),若希望本地修改不被提交,可以使用 Git 命令: ```bash git update-index --assume-unchanged config/config.properties ``` 该命令会告诉 Git 假设该文件未更改,从而忽略本地的修改。若之后希望重新跟踪该文件的更改,可使用: ```bash git update-index --no-assume-unchanged config/config.properties ``` 此方法适用于团队协作中某些个性化配置文件的处理,例如数据库连接配置等[^3]。 ### 3. 在 Eclipse/MyEclipse 中手动取消跟踪文件 在 MyEclipse 的 Git 提交界面中,若发现某些不需要提交文件出现在“Staged Changes”中,可以通过以下步骤取消跟踪: - 在“Git Staging”视图中,选中不想提交文件。 - 右键选择 **Unstage**,将文件移回“Unstaged Changes”区域。 - 对于已经提交过的文件,右键点击并选择 **Untrack**,这样 Git 将停止对该文件的版本控制[^2]。 ### 4. 使用 `.git/info/exclude` 文件 除了项目级的 `.gitignore` 外,还可以在 `.git/info/exclude` 文件中添加忽略规则,这种方式仅对本地仓库生效,不会影响其他开发者。适用于临时忽略某些本地生成的文件或个性化配置文件[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值