相关疑难解决方法(0)

我为什么要在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 repo然后开始在它的主分支中玩.过了一会儿,我想忽略我刚刚做出的改变(不提交它们),然后切换到另一个分支.但是,它阻止我切换,因为有未提交的更改.如何在不隐藏它们的情况下忽略它们?这是发生的事情:

$ git checkout gh-pages
error: Your local changes to the following files would be overwritten by checkout:
        somefile.txt
Please, commit your changes or stash them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)

git git-stash git-branch

40
推荐指数
3
解决办法
5万
查看次数

Git"配对破坏"和"未知"状态意味着什么,它们何时发生?

git diff例如--name-status,某些选项会导致在文件名旁边输出状态字母.他们是:

A,C,D,M,R,T,U,X,B

......他们的意思是

添加(A),复制(C),删除(D),修改(M),重命名(R),类型(即常规文件,符号链接,子模块,...)更改(T),未合并(U),未知(X) ),或配对破碎(B).

问题:如何解释XB状态,以及哪些情况会导致它们出现?您能否提供一系列步骤,导致出现在输出中的这种状态git-diff,以及可能的修复方法?

git git-diff

14
推荐指数
1
解决办法
1727
查看次数

Git要求提交或存储,但没有什么可以提交的

在尝试从远程分支拉出时,我收到一个错误: Your local changes to the following files would be overwritten by merge: app/..../_shared.scss Git要求提交文件或存储.

问题是-我已经做git add .git commit -am "trying to remove the error".问题依然存在.

git status 说:"没什么可提交的(工作目录清理)"

有谁知道怎么摆脱它?

解答:将违规文件移动到其他位置.然后从树中删除有问题的文件.再次拉.然后将您的违规文件中的更改与您刚刚提取的文件区分开来.黑客,但它的工作原理.

注意:我在这里找到了答案(Git要求我提交或藏匿甚至提交这些更改),但是因为没有人在最初的想法中投票,我应该重新发布.这是一个黑客,但它是解决问题的最快途径.

git

8
推荐指数
1
解决办法
2720
查看次数

Git分支表现得很奇怪

好像我无意中修改了我的git配置,这样当我从branchA切换到master时,所有更改都会自动合并到master.没有我在branchA中的提交或我的合并到master,就会发生这种情况.在过去,如果我在修改跟踪文件并且没有提交后尝试切换分支,我得到"未提交的更改,无法切换分支"消息,但现在我无法引发该行为.我的git配置发生了一些变化,但我不知道它可能是什么.这听起来对任何人都很熟悉吗?

任何帮助是极大的赞赏.

Ubuntu 10.10
git 1.7.1
github.com

这是我的git config -l:

giggle.main-window-maximized=false
giggle.main-window-geometry=993x731+318+160
giggle.history-view-vpane-position=223
giggle.main-window-view=HistoryView
giggle.file-view-vpane-position=153
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=**************************************
branch.master.remote=origin
branch.master.merge=refs/heads/master
submodule.config/shared_capistrano.url=******************capistrano.git
submodule.vendor/plugins/authentication_client.url=********************.git
branch.dev.remote=origin
branch.dev.merge=refs/heads/dev
branch.1.3.9.remote=origin
branch.1.3.9.merge=refs/heads/1.3.9
Run Code Online (Sandbox Code Playgroud)

git

5
推荐指数
1
解决办法
1142
查看次数

在git中切换分支 - 我什么时候会得到"你有本地更改不能切换分支."?

可能重复:
git:切换分支并忽略任何更改而不提交.
Git分支表现得很奇怪

我知道一般的建议是在git中切换分支之前要有一个干净的状态.(藏匿或公园承诺).我想知道我何时会得到"你有本地更改无法切换分支",我无法遵循逻辑:

我有一个repo,文件名为version.txt,包含文本"1":

git checkout -b new

echo 2 >> version.txt(工作目录不脏,修改文件)

git checkout master(这是怎么回事?我没有阶段\提交我对新的更改)

如果我删除新分支中的文件内容,或者首先暂存文件,也会发生同样的情况.

有人可以帮我理解我什么时候会得到"你有本地更改不能切换分支".?

谢谢,冉

git branch git-checkout git-branch

2
推荐指数
1
解决办法
1万
查看次数