关于使用ssh与git遇到的麻烦
1、问题背景
想将服务器上的工作文件提交到项目组自己的git。
首先,在自己电脑上创建了远程仓库:git@xxx.xxxxx.org:xxxx.git
然后下一步就是到服务器上把需要提交的文件提交。
到了服务器上第一步肯定是把远程仓库clone下来,然后把待提交的文件放clone下来的文件夹。
由于这个新docker之前没连过远程仓库,所以clone的时候,先要输用户名、邮箱,然后输密码。但是由于我长时间都是用ssh登,密码早就忘了,所以这次也用ssh,搞了个公私钥,然后私钥用的我自己名的名id_ras_git
(不是默认的id_ras
),所以肯定要在ssh中配置一下与git@xxx.xxxxx.org
链接的时候用id_ras_git
当验证文件。准备用私钥时出现问题一
2、问题一
1)我的docker的
root/.ssh/
文件夹里面没有config文件。
行,那我跟着网上创一个config,然后把配置怼好
Host xxxx
HostName xxx.xxxxx.org
User pp
IdentityFile "~\.ssh\id_rsa_git"
因为我电脑ssh的config就写了这个,并且能用。所以我自信满满,结果···寄,登的时候说id_rsa
与公钥匹配失败。丢我都指定了用哪个私钥,你还给我用默认的是吧···
后来找了半天原因,感觉好像是ssh就没用我搞得config文件
NO!难道我要给私钥rename成id_rsa
后来找到etc/ssh/ssh_config
,把里面的默认私钥改成:id_rsa_git
。
也就是如下
Host *
# ForwardAgent no
# ForwardX11 no
# ForwardX11Trusted yes
# PasswordAuthentication yes
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# GSSAPIKeyExchange no
# GSSAPITrustDNS no
# BatchMode no
# CheckHostIP yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_git
eee,凑活用吧。
问题二
现在连git没问题了,但是把要提交的文件夹放进去,又出问题了:
因为我的文件夹里面有几个第三方库,并且都是git下来的,所以git提交时检测到里面有“another git repository”
warning: adding embedded git repository: xxxxxx
hint: You've added another git repository inside your current repository.
然后我看网上的就用了
git rm -r --cached xxx
然后能提交是能提交了,就是看远程仓库里面就是个空文件···
看来正解还得是把文件里面无关的git删完(注意.git文件一般都是隐藏的),所以到文件夹里面(记得到文件夹路径下)
find ./ -name .git |xargs rm -r
ok,之前用来git的文件夹感觉不太能用了,因为即使把里面的文件处理后,commit的时候会报
Your branch is up to date with 'origin/master'. nothing to commit, working tree clean
意思就是,没有发现你改东西···
于是直接删了,新clone下来一个,把出处理过的待提交的文件扔进去,然后add、commit、push
OKK