我在我的硬盘驱动器(本地)上克隆的USB密钥上有一个repo(origin).我将"origin"移动到NAS并成功测试从这里克隆它.
我想知道我是否可以在"本地"设置中更改"origin"的URI,因此它现在将从NAS中提取,而不是从USB密钥中提取.
现在,我可以看到两个解决方案:
将所有内容推送到usb-orign,并将其再次复制到NAS(由于对来源的新提交而意味着大量的工作);
添加一个新的遥控器到"本地"并删除旧遥控器(我担心我会打破我的历史).
我来自Subversion背景,当我有一个分支时,我知道我正在处理的是"这些工作文件指向这个分支".
但是对于Git,我不确定我何时在NetBeans或Notepad ++中编辑文件,无论它是与主服务器还是其他分支相关联.
git
在bash中没有问题,它告诉我我在做什么.
我已经通过ssh克隆了我的git存储库.因此,每次我通过推或拉与原始主人沟通时,我都必须重新输入密码.如何配置git以便我不需要多次输入密码?
当我使用Git克隆带有HTTP和用户密码的远程存储库时,是否可以在Windows上使用.netrc文件?
在Bash中模拟do-while循环的最佳方法是什么?
我可以在进入while
循环之前检查条件,然后继续重新检查循环中的条件,但这是重复的代码.有更干净的方式吗?
我的脚本的伪代码:
while [ current_time <= $cutoff ]; do
check_if_file_present
#do other stuff
done
Run Code Online (Sandbox Code Playgroud)
check_if_file_present
如果在$cutoff
时间之后启动,这将不会执行,并且会执行.
我的sh
Linux环境中有一个示例脚本,基本上运行的ssh-agent
是当前shell,为它添加一个键并运行两个git命令:
#!/bin/bash
eval "$(ssh-agent -s)"
ssh-add /home/duvdevan/.ssh/id_rsa
git -C /var/www/duvdevan/ reset --hard origin/master
git -C /var/www/duvdevan/ pull origin master
Run Code Online (Sandbox Code Playgroud)
脚本实际上运行正常,但每次运行它都会得到一个新进程,所以我认为它可能会成为一个性能问题而且我最终可能会遇到无用的进程.
输出的一个例子:
Agent pid 12109
Identity added: /home/duvdevan/.ssh/custom_rsa (rsa w/o comment)
Run Code Online (Sandbox Code Playgroud)
此外,除此之外,是否可以找到现有ssh-agent
流程并将其添加到其中?
是否有可能在自动提交后进行git push?现在我需要在手动提交后点击push,这不是很舒服.
我正在使用我在开发环境中克隆的5个回购.当我想更新git仓库时,我输入文件夹/ home/adrian/repo1 /并执行:
git checkout master git pull origin master
但是,每天早上我必须为其他4个回购做同样的事情.这很麻烦.
我可以把它放在shell脚本中吗?我的意思是,如果我在shell脚本中编写这些git命令并运行它,我能否更新所有的repos?
我在想写这样的东西......
cd repo1
git checkout master
git pull origin master
cd ..
cd repo2
git checkout master
git pull origin master
cd ..
Run Code Online (Sandbox Code Playgroud)
(我在linux上)
编辑:也许这比我想象的更具挑战性.大多数情况下,当我做"git pull origin master"时,我会得到像"你的本地更改......将被合并覆盖"这样的错误.所以我必须进入相应的分支并藏匿东西..
编辑2:
我正在考虑的是,如果发生冲突,请忽略它并转到下一个回购
cd repo1
git checkout master
git pull origin master
(if there is conflict, ignore and go to the next line but dont stop here)
cd ..
cd repo2
git checkout master
git pull origin master
cd ..
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在括号中写出这个东西.
我真的想使用GitHub,但我的公司已经锁定了所有内容.现在,我只能通过HTTP协议使用Tortoise SVN.我可以用同样的方式使用GitHub吗?如果是这样,怎么样?
我正在Windows Server 2016上运行的Jenkins 2.152中创建一个工作,需要从bitbucket.org上托管的git repo中提取.我通过git-bash测试了ssh密钥,所以我知道它有效并且没有密码短语.当我尝试使用与Jenkins完全相同的私钥时,我收到一条错误消息.
Failed to connect to repository : Command "git.exe ls-remote -h
git@bitbucket.org:mygroup/myrepo HEAD" returned status code 128:
stdout:
stderr: Load key
"C:\\Users\\JE~1\\AppData\\Local\\Temp\\ssh2142299850576289882.key": invalid format
git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
凭据设置为
scope: Global
user: git
Private Key -> Enter Directly -> copy and past - generated by ssh-keygen -t rsa in gitbash
Passphrase: empty
ID: empty
description: bitbucket.org …
Run Code Online (Sandbox Code Playgroud)