相关疑难解决方法(0)

如何让Git忽略文件模式(chmod)的变化?

我有一个项目,我必须chmod在开发过程中将文件模式更改为777,但不应在主回购中更改.

Git选择chmod -R 777 .并将所有文件标记为已更改.有没有办法让Git忽略对文件进行的模式更改?

git ignore chmod

2188
推荐指数
10
解决办法
86万
查看次数

"git reset"和"git checkout"有什么区别?

我一直在想,git reset并且git checkout同样地,在这个意义上,两者都将项目带回特定的提交.但是,我觉得它们不可能完全相同,因为这将是多余的.这两者之间的实际差异是什么?我有点困惑,因为svn只svn co需要恢复提交.

添加

下面的图解释了差别,尽管在一个或者可能过于简化的或不正确的方式进行.你怎么看?是错误还是过度简化?

http://a.imageshack.us/img192/5440/screenshot20100903at416.png

增加2

VonC和Charles解释了两者之间的差异,git reset并且git checkout非常好.我目前的理解是git reset将所有更改还原为特定提交,而git checkout更多或更少的准备分支.我发现以下两个图对于理解这些图非常有用:

http://a.imageshack.us/img651/1559/86421927.png http://a.imageshack.us/img801/1986/resetr.png

增加3

http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html,checkout和reset可以模拟反叛.

在此输入图像描述

git checkout bar 
git reset --hard newbar 
git branch -d newbar 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

git git-checkout git-reset

415
推荐指数
5
解决办法
11万
查看次数

我为什么要在Git中使用core.autocrlf = true?

我有一个从Windows和OS X访问的Git存储库,我知道已经包含一些带有CRLF行结尾的文件.据我所知,有两种方法可以解决这个问题:

  1. 设置core.autocrlffalse无处不在,

  2. 按照指示在这里(回荡在GitHub上的帮助页)到存储库转换为只包含LF行结束,然后设置core.autocrlftrue在Windows和input在OS X上有这样做的问题是,如果我有仓库中任何二进制文件那:

    1. 在gitattributes中未正确标记为二进制文件,并且
    2. 碰巧包含CRLF和LF,

    他们会被腐化.我的存储库可能包含这些文件.

那么为什么我不应该关闭Git的行结束转换呢?网上有很多模糊的警告关于core.autocrlf关闭造成问题,但很少有具体问题; 到目前为止我唯一发现的是kdiff3无法处理CRLF结尾(对我来说不是问题),而且一些文本编辑器有行结束问题(对我来说也不是问题).

存储库是我公司的内部存储库,因此我不需要担心与具有不同autocrlf设置或行结束要求的人共享它.

是否有任何其他问题只是留下我不知道的行结尾?

git line-endings

272
推荐指数
3
解决办法
23万
查看次数

Git的奇怪行为:神秘的变化无法撤消

我在Git中看到一种对我来说非常神秘的行为.我保留了从Github克隆的Linux存储库,以便在本地使用Git.为了清楚起见,我在这个存储库中做的不多:我获取更改,更新master,签出特定版本,有时我会尝试使用Git GUI来查看大型项目中可视化的外观.TLDR版本:我从未对其中的文件进行任何更改.

奇怪的行为

今天早些时候,我签出master并从Github取消了更改.一切似乎都没事.但我怀疑它实际上没有.这就是现在的git status样子.

axel@macbook ~/Depots/linux $ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   include/linux/netfilter/xt_connmark.h
#   modified:   include/linux/netfilter/xt_dscp.h
#   modified:   include/linux/netfilter/xt_mark.h
#   modified:   include/linux/netfilter/xt_rateest.h
#   modified:   include/linux/netfilter/xt_tcpmss.h
#   modified:   include/linux/netfilter_ipv4/ipt_ecn.h
#   modified:   include/linux/netfilter_ipv4/ipt_ttl.h
#   modified:   include/linux/netfilter_ipv6/ip6t_hl.h
#   modified: …
Run Code Online (Sandbox Code Playgroud)

linux git macos git-checkout

19
推荐指数
1
解决办法
2484
查看次数

标签 统计

git ×4

git-checkout ×2

chmod ×1

git-reset ×1

ignore ×1

line-endings ×1

linux ×1

macos ×1