编辑: git不会弄乱字符编码.这仍然是为了分享知识并避免其他人犯同样的错误.
上下文:我的企业使用svn存储库.我正在使用git-svn作为客户端与此存储库进行交互.项目中的所有文本文件都是(并且必须)使用Windows默认编码(cp -....)进行编码.我使用git-extensions,有时使用命令行来导航git.
我做了什么:在过去的3天里,我正在开发一个新功能,我做了很多本地提交.最后,我使用交互式rebase将所有这些提交压缩成一个,然后我使用git svn dcommit在一次提交中推送svn存储库中的所有内容.
然后发生了什么:一位同事告诉我,所有的重音都在我修改过的文件中,在我提交后的新文件中搞砸了.我之前已经安装了git + svn,已经在同一个存储库中提交了带重音的文本文件,这是我第一次遇到这个问题.
我的调查:我做了以下事情来调查:用notepad ++打开文件,并尝试最新的编码(包括Windows默认和UTF-8)来查看它们:它们都不能正确显示重音,并且总是呈现不同的重音通过相同的奇怪字形序列.
临时解决方法:我使用git扩展和"dcommited"快速创建了一个恢复提交.
问题:我的企业svn存储库没问题,但现在我要解决以下两个问题:
任何人都可以提供一些线索(我对git很新)?
为了压缩多次提交,我一直使用:
git reset --soft HEAD~<number of commits to squash> && git commit
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有一个很好的方法可以在一个像git扩展这样的好git客户端中做到这一点?如果您可以选择连续提交并压缩它们会很酷.
如果我从Git Extention(CTRL+ G)运行Git bash ,我的主目录是%USERPROFILE%,这没关系.
如果我从git repo文件夹的上下文菜单中运行Git bash,或者如果我从开始菜单运行Git bash,我的主目录是%HOME%,这是不同的.
如何设置git bash以始终使用%USERPROFILE%作为主目录(我有.ssh文件夹)?
如果它可以帮助,从Git Ext运行git bash,我有:
$ echo $HOME
/c/Users/mylogin
Run Code Online (Sandbox Code Playgroud)
git bash上的相同命令直接运行:
$ echo $HOME
/h
Run Code Online (Sandbox Code Playgroud)
h: 是我的公司主目录
我能做什么 ?
突然间,我在检查我的本地主分支时开始收到以下错误.问题文件以及错误本身似乎是随机的(有时结帐工作完全正常).
"c:\ Program Files(x86)\ Git\bin\git.exe"checkout --merge"master"D abc123.cs错误:无法创建文件abc123.cs(权限被拒绝)切换到分支'master'完成
我需要在我没有推送的提交上编辑我的消息/评论.
我正在使用Git Extensions.
救命.
PS - 另外,在推送提交后如何编辑我的消息?
我最近将我的 Git 扩展更新为 3.0.2.5232,现在我的 git 不再受支持。当我运行时:
git --version
Run Code Online (Sandbox Code Playgroud)
我得到
git version 2.9.0.windows.1
Run Code Online (Sandbox Code Playgroud)
但是,我不能只在线下载最新版本的 git,因为由于管理员权限而我无法运行 .exe 安装程序,还有什么不是,那么有没有我可以运行的命令直接从 admin cmd 升级?
无论我尝试重新安装多少次,我都会在我的 Visual Studio 代码中得到这个
我找到了有关如何将Git存储库中的单个文件还原为早期版本的说明.但我很好奇,如果有人知道使用Git Extensions for Visual Studio的方法.这个工具到目前为止工作得很好,我真的很喜欢它,但我无法弄清楚如何做到这一点.
有没有一种简单的方法可以使用Git Extensions UI(除了Commit对话框)在工作目录上获取diff ?
感觉View Diff应该允许我在我的工作目录和提交版本之间进行区分.但是它似乎只想向我展示我的提交历史.
我是一个正在恢复的Tortoise Git用户,我习惯在我的提交日志UI中有一个"工作目录"pseduo-commit.Git Extensions中的任何内容与此类似吗?
我的用户名和密码存储在Git Extensions的内部.一段时间后,有必要再次提供用户名和密码,我多次给错了.
现在,如果我想拉东西等,我会收到fatal: Authentication failed.我不能给新密码,它似乎存储,我不知道如何更改它.
是否可以删除旧凭据?
我有2.51.04版本.我已经卸载它并重新安装它并没有帮助我.