我有一个非常奇怪的问题与git和github。当我试着推的时候,我得到:
git push -u origin master
ERROR: Repository not found.
fatal: The remote end hung up unexpectedly
我添加了遥控器:
git remote add origin git@github.com:account-name/repo-name.git
什么好主意吗?
我有一个非常奇怪的问题与git和github。当我试着推的时候,我得到:
git push -u origin master
ERROR: Repository not found.
fatal: The remote end hung up unexpectedly
我添加了遥控器:
git remote add origin git@github.com:account-name/repo-name.git
什么好主意吗?
当前回答
我也遇到了同样的问题,我通过在回购url中包含我的用户名和密码来解决它:
git clone https://myusername:mypassword@github.com/path_to/myRepo.git
其他回答
Github于2021年8月13日删除了用户名和密码的使用。现在改用个人代币
要克服这一点,请使用create personal token生成个人令牌。并使用下面的代码片段来实现推送和克隆功能。
推动
git remote remove origin
git remote add origin https://[USER]:[TOKEN]@github.com/[USER]/[REPO]
git push
克隆
git clone https://[USER]:[TOKEN]@github.com/[USER]/[REPO]
我的问题是我创建了一个没有权限的个人开发人员令牌
创建一个Fork
如果没有对该存储库的写访问权,则不需要它。按照下面的说明创建一个fork——它是你自己的存储库的克隆,你可以自由修改。
在创建fork之后,您可以将该repo复制到您的计算机。
git clone git@github.com:<your-git-handle>/<repository>.git
// It will be cloned to your machine where you run the command
// under a <repository> folder that it will create.
签出一个新的分支并进行更改。
git checkout -b my-new-feature
要将更改提交到原始存储库,您需要确保它们已被推送
/* make changes */
git commit -am "New Feature: Made a new feature!"
git push origin my-new-feature
要将这些更改放到派生出来的原始存储库中,您可以按照以下说明提交一个Pull Requests。Pull Request基本上,你请求对存储库有写访问权限的用户下拉你所做的更改。把它想象成“我请求您将我的更改拉到您的回购中。”
注意:尽管如此,您的分支不会与原始存储库中正在进行的所有更改保持最新。您必须定期删除这些更改—但这很容易。
创建分叉后,你可以链接到你已经分叉的回购,这样你就可以拉进它的变化并保持最新。
git remote add upstream git@github.com:<git-user-handle>/<repository>.git
一旦你做到了这一点,保持与原始回购上所做的更改同步是非常容易的。
git checkout master // checkout your local master
git pull upstream master // fetch changes from the master branch of the repo you forked from.. which is linked to your fork under the alias "upstream" (common naming convention)
git push origin master // push the pulled changes onto your local master
git checkout -b new-branch // create a new branch and start making changes
我的代码片段:
environment {
...
...
git_repo = 'my-repo'
}
stage ('Update Helm Chart') {
steps {
echo 'Updating values.xml file with latest Docker image tag'
withCredentials([usernamePassword(credentialsId: '6bgg7dd45-c65f13-4275-a96ddehdv67gdr', usernameVariable: 'GIT_USER', passwordVariable: 'GIT_PASS')]) {
sh '''
git checkout ${git_branch}
...
...
git remote set-url origin "http://${GIT_USER}:${GIT_PASS}@git.example.com/scm/${git_repo}.git"
git push origin ${git_branch}
'''
}
}
}
我的Git用户名是deploy.user@example.com,所以我必须首先URL编码@ %40。在URL编码之后,我的用户名变成了deploy.user%40example.com。
然而,我仍然得到以下错误:
fatal: repository 'http://****:****@git.example.com/scm/my-repo.git/' not found
经过一些试验和错误,我发现,如果我不使用变量的用户名,而是硬编码它,它的工作。
git remote set-url origin "http://deploy.user%40example.com:${GIT_PASS}@git.example.com/scm/${git_repo}.git"
在我的情况下,这是由git使用错误的ssh私钥引起的。 我在学校使用的特定github用户帐户下获得了访问存储库的权限。我的默认ssh私钥不幸链接到不同的github帐户。
如果您使用ssh -T git@github.com ssh将自动使用您的id_rsa私钥连接到github。
使用ssh -i ~/。ssh/<some-key> -T git@github.com应该导致github欢迎您与您链接到该密钥的帐户。
所以在我的情况下发生的是,git正在使用我的默认ssh私钥,该私钥链接到错误的github帐户,该帐户没有访问我试图访问的私有存储库。
为了解决这个问题,我告诉git使用正确的ssh命令在本地git配置我的repo使用命令:git config core。ssh -i ~/.使用实例Ssh /<正确的私钥here>"
查看git配置git config -l应该显示行被正确添加。