所以我似乎有一些设置msysgit的实际问题.我可以通过putty连接到我的SSH目录
SSH://用户名@主机:端口
我有正确的钥匙.我也可以通过plink使用plink
plink -P PORT user @ host -i /path/to/private_key.ppk
当我尝试运行(通过TortiseGIT)或通过git bash
git clone ssh:// user @ host:port/path/to/myapp.git
我只是不断收到错误
D:/Git/myapp.git中初始化的空Git存储库
警告:您似乎克隆了一个空存储库.
致命:远程端意外挂断
我检查了bot /Git/setup.ini和TortiseGIT,两者都使用了
C:\ Program Files\TortoiseSVN\bin\TortoisePlink.exe
有谁知道如何解决这个问题,因为它让我疯了!
我有一个sh/bash脚本需要调用带参数的批处理文件(参数是文件名,并以DOS/Windows格式给出).
基本上我有: script.sh
#!/bin/sh
declare var1=$1
declare var2=$2
dosomething var1 var2
...
<invoke batch script> var1 var2
...
dosomethingelse
Run Code Online (Sandbox Code Playgroud)
我正在使用GNU bash, version 3.1.0(3)-release (i686-pc-msys)shell作为shellmsysgit
问题是,当我从脚本运行时:
$COMSPEC /c batchfile param1 param2
要么我得到一个看似bash的"空提示",但是控制台上没有显示命令结果,要么cmd.exe启动,要么不执行脚本.
我试过引用这些参数来像这样猛击:
$COMSPEC /c \"batchfile param1 param2\"
$COMSPEC /c \"\"batchfile param1 param2\"\"
$COMSPEC /c \"\"batchfile \"param1\" \"param2\"\"\"
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何结果.
我使用Ubuntu将存储库上传到github.
我下载到Windows 7并使用msysgit.当我在Windows中保存一些文件而没有任何更改.
当我执行git状态时,它们被列为已修改.
当我做git diff时,所有行最后都有^ M.
这是什么^ M我怎么能忽略这个?
提前致谢.
UPDATE
我在.gitconfig中有autocrlf = false,因为我想保留lf而不是auto或crlf.
我在Windows安装上设置了%HOME%环境变量.
在那个文件夹中,我放了一个名为_netrc的文件.在我的文件里面:
machine code.google.com login <logon> password <censored>
Run Code Online (Sandbox Code Playgroud)
但是,MSYS和Tortoise都要求输入密码.
我使用的是Windows 7,MSYSGit和TortoiseGit.为什么这不起作用?
我发现一篇关于Stack Overflow的文章说它必须命名为_netrc而不是.netrc,但它们都不起作用.
我处于这种情况,我需要我的msysgit用不同的密钥与github交谈.但是git bash坚持只使用名为id_rsa的密钥文件.如果我做ssh -vT git@github.com我看到只提供id_rsa.
因此,每当我需要使用任何其他密钥时,我必须完成所有这些,
ssh-agent bash
ssh-add ~/.ssh/mygithubkey
git clone git@github.com:myaccount/myrepo.git
Run Code Online (Sandbox Code Playgroud)
或者在我需要时将其重命名mygithubkey为id_rsa将原始id_rsa备份到另一个文件anotherkey
当然这很痛苦,特别是因为命令历史在常规git bash中也有所不同.
stackoverflow中的其他答案只能帮助我解决上述问题.如果我做
ssh-add ~/.ssh/mygithubkey
Run Code Online (Sandbox Code Playgroud)
直接在我的git bash中,它说无法连接到ssh-agent.如果我做
ssh-agent ssh-add ~/.ssh/mygithubkey
git pull
ssh -vT git@github.com
Run Code Online (Sandbox Code Playgroud)
直接在我的git bash中,它表示权限被拒绝,似乎ssh-add并没有真正永久地添加密钥!在详细模式下查看调试消息时,不会提供添加的密钥.
无论如何,当sshing到github时,永久性地添加一个ssh密钥列表?我是ssh配置中的菜鸟,所以请在答案中详细说明.
我是一个代理,我对git很新,我在Windows XP上.
我已经能够git push origin master从msysgit 做一个工作,但无法使用Cygwin的git在Cygwin中工作.
我在两种环境中使用以下命令行配置了git:
git config --global user.name ...
git config --global user.email ...
git config --global http.proxy ...
Run Code Online (Sandbox Code Playgroud)
我正在玩一个测试Github回购.我遇到的问题是使用以下命令行:
git push origin master
Run Code Online (Sandbox Code Playgroud)
在msysgit中,我有以下结果:
Writing objects: 100% (3/3), 222 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://github.com/ymartineau/test.git
* [new branch] master -> master
Run Code Online (Sandbox Code Playgroud)
没关系,在Cygwin中,git询问用户名,但从不询问用户密码并挂起.
$ git push origin master
Username for 'http://github.com': ymartineau
Run Code Online (Sandbox Code Playgroud)
我暂时会使用msysgit bash,但我认为从Cygwin集成中受益可能会很有趣.
我正在输出到终端,但是Git没有正确地检测到我正在输出到终端,以便为输出着色.我的问题是,当git-config(1)表示"仅在输出到终端时才使用颜色"时,git-config(1)的含义是什么(此短语出现在多个配置描述的末尾,例如color.ui和color .科)?换句话说,Git如何决定它是否输出到终端,以及如何更改我的环境设置以告知Git我的终端确实是终端?
细节:
我在Windows上使用带有Cygwin的rxvt终端.我也安装了MSysGit.当我进行Git配置设置时:
[color]
ui = auto
branch = auto
status = auto
Run Code Online (Sandbox Code Playgroud)
我的终端输出中仍然没有颜色.但是,当我切换到
[color]
ui = always
branch = always
status = always
Run Code Online (Sandbox Code Playgroud)
然后有正确的彩色输出.但是,为了正确处理实际的非终端案例,我需要切换回"auto"而不是"always".因此,为了使"自动"正常工作:如何更改我的环境以使Git认识到我的rxvt + Cygwin是一个能够支持颜色的终端?
(PS.由于比这个相对较小的颜色问题更大的问题,我不能使用Cygwin版本的Git.请不要回复告诉我切换到Cygwin版本.)
谢谢你的帮助!
当我运行git pull时,我得到了:
edson$ GIT_TRACE=1 git pull -v
trace: exec: 'git-pull' '-v'
trace: run_command: 'git-pull' '-v'
trace: built-in: git 'rev-parse' '--git-dir'
trace: built-in: git 'rev-parse' '--is-bare-repository'
trace: built-in: git 'rev-parse' '--show-toplevel'
trace: built-in: git 'ls-files' '-u'
trace: built-in: git 'symbolic-ref' '-q' 'HEAD'
trace: built-in: git 'config' 'branch.master.rebase'
trace: built-in: git 'config' 'pull.rebase'
trace: built-in: git 'rev-parse' '-q' '--verify' 'HEAD'
trace: built-in: git 'fetch' '-v' '--update-head-ok'
trace: run_command: 'ssh' 'git@bitbucket.org' 'git-upload-pack '\''xxxltd/xxxltd.git'\'''
trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
trace: run_command: …Run Code Online (Sandbox Code Playgroud) 如果我们以管理员身份打开msysgit,我们可以像使用root一样使用它.但是,在没有管理员权限的情况下打开通常更容易.例如,对于管理员权限,您通常必须转到Windows资源管理器,"开始"菜单/屏幕等,并且您无法从任务栏执行此操作.有时,我懒得做这一切,但我想在Bash中获得管理员权限.Git Bash 是否有sudo- 或者su- 类似的命令或脚本等?进入cmd.exe,PowerShell等等,然后做一些类似的runas工作,如果没有别的.
如何msysgit扫描文件以进行真正的更改?
目前它似乎依赖于文件时间戳,因此它会出错:显示没有差异.
我试着git update-index --refresh和git update-index --really-refresh.这两个命令立即退出,似乎不执行树中每个文件的扫描和二进制比较.
来自另一个问题的引用:
设置
core.trustctime为false使git忽略对ctime的虚假更改,这显然发生在某些文件系统上.我需要相反的行为:即使mtime没有改变,也要重新计算文件哈希.