我有一个git repo,它是另一个repo的分支.作为一项规则,我通常会添加一个名为upstream的远程,这是我分叉的原始回购.
$ git remote -v
origin git@github.com:skela/awesomeproject.git (fetch)
origin git@github.com:skela/awesomeproject.git (push)
upstream git://github.com/bob/awesomeproject.git (fetch)
upstream git://github.com/bob/awesomeproject.git (push)
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个额外的远程持久化克隆?假设我删除了本地存储库并执行以下操作:
git clone git@github.com:skela/awesomeproject.git
Run Code Online (Sandbox Code Playgroud)
现在我重新检查我的遥控器:
$ git remote -v
origin git@github.com:skela/awesomeproject.git (fetch)
origin git@github.com:skela/awesomeproject.git (push)
Run Code Online (Sandbox Code Playgroud)
我的上游遥控器消失了!
如何确保我的git repo始终保留这两个远程别名?
编辑:只是添加我想要这样做的主要原因,以便在可接受的路径上塑造一些答案;)
目标是在我的仓库中设立一个跟踪上游主人的分支.
[remote "upstream"]
url = git://github.com/bob/awesomeproject.git
fetch = +refs/heads/*:refs/remotes/upstream/*
[branch "father"]
remote = upstream
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)
换句话说,在我的仓库中的分支"父亲"跟踪称为上游主分支的远程.
一旦我设置它,它一切都很好,但是一旦我再次克隆了回购,"父"分支指向原点而不是上游.
尝试连接 GitHub 时出错:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: unable to access 'https://github.com/ershubhamyadav/dream365web.git/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud) git github git-clone personal-access-token private-repository
我有一个远程存储库和2个克隆.
我在其中一个克隆中创建了一个分支,例如test.我做了一些工作和2次提交.我合并到master分支和push -u分支.
我git pull在另一个克隆中做了一个.
我看到了两个master和test.
在我做的第一个克隆项目中:
git origin :test删除test远程存储库上的分支.
test在远程回购中被删除.
我这样做git branch -D test,test分支也在本地删除.
如果我这样做,git branch -a我得到:
*master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
现在在第二个存储库中我做了一个git pull.
在拉动局部test似乎被删除但git似乎"认为"远程test分支仍然存在.
如果我这样做,git branch -a我得到:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/test
Run Code Online (Sandbox Code Playgroud)
为什么删除的test分支显示为远程分支?
我是使用GitHub作为我的项目文件存储库的粉丝.但是如果我能够在不同的目录路径上在这台计算机上创建一个存储库,那么我会更感兴趣.然后克隆在我的新工作目录上创建存储库.
我打算在本地制作一个GitHub .我一直在寻找这个,许多人回来说我应该使用gitolite而不是更多.我使用Windows的问题,我想使用命令行执行所有步骤.
我应该输入哪些命令行来在工作目录以外的其他目录上创建存储库,并能够将该存储库克隆到本地网络中的其他终端.
将终端连接到Windows主机
我已经创建了一个存储库目录Users\username\GIT\project.git.我试图使用命令行git clone file://{IPv4 server address}/Users/username/GIT/project.git返回链接我的终端
fatal: '/{IPv4 server address}/Users/username/GIT/project.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?我的主机在Windows 7上运行,我的连接终端将使用Ubuntu 12.04 LTS和MacOS Mavericks.
更新跟踪
我正在使用git来管理一个小项目.我一直在通过SSH执行所有事务(克隆,推送,拉取等),但最近运行了git-update-server-info,因为我想尝试通过http运行git-clone.它运作得很好.凉.现在我意识到,任何人都可以通过http克隆我的存储库而无需任何凭据.我隐约知道通过gitosis建立http身份验证,但这真的不是我想要的.我宁愿完全禁用http克隆.
有没有办法告诉git只允许通过ssh进行交易?或者我可以撤消我在运行git-update-server-info时所做的事情,以便首先通过http进行克隆?
这个问题不同于Git push"错误:index-pack死于信号9"
错误信息如下:
remote: Counting objects: 40512, done.
remote: Compressing objects: 100% (8896/8896), done.
remote: Total 40512 (delta 31079), reused 40394 (delta 30980)
Receiving objects: 100% (40512/40512), 6.05 MiB | 22 KiB/s, done.
error: index-pack died of signal 99)
fatal: index-pack failed
real 1292050m43.682s
user 0m23.645s
sys 0m5.872s
Run Code Online (Sandbox Code Playgroud)
还有一个案例:
remote: Counting objects: 18389, done.
remote: Compressing objects: 100% (4951/4951), done.
fatal: The remote end hung up unexpectedly MiB | 22 KiB/s
fatal: early EOF
fatal: index-pack failed
real 7m18.359s …Run Code Online (Sandbox Code Playgroud) 我读了这个问题的答案,git fetch origin应该取得所有原始分支.在我的情况下,它似乎并没有给我任何分支.这是我做的:
最初,一个名为origin的远程有7个分支.我克隆了它.git branch然后只返回master.我做了git fetch origin,git branch仍然只是表演master.如何在不单独获取的情况下获取其他6个分支?
我们在本地网络中的共享文件夹上有一个远程存储库.我试图做一个浅的克隆:
git clone --depth 1 //gitrepos-pc/git/foo/
Run Code Online (Sandbox Code Playgroud)
它给了我这个警告,并做了一个完整的克隆:
warning: --depth is ignored in local clones; use file:// instead.
Run Code Online (Sandbox Code Playgroud) 我正在使用 gitlab 。我想编写一个包含所有步骤的 .bat 文件,以便我可以自动化所有过程,如下所示:
第三点是 git clone https.... 不再在 gitBash 中工作。我尝试使用 git clone SSH ... 它正在工作,它要求输入密码,登录后它即将克隆 repo。由于我想通过默认提供登录凭据来自动执行该过程,因此如何使用 SSH 实现。谢谢你。
在 PhpStorm 中使用 git clone 时,我收到一条错误消息:
克隆失败
无法与 IP 地址端口 22 协商:未找到匹配的主机密钥类型。他们的报价:ssh-rsa,ssh-dss
无法从远程存储库读取。
请确保您拥有正确的访问权限并且存储库存在。
然后我制作了自己的 RSA 密钥并将其保存在我的计算机上;还在我想要获取 git clone 的服务器上(通过服务器主机)注册了它。我还降级了最新的 PhpStorm 版本。作为最后的手段,我还重置了计算机并重新安装了 PhpStorm。
但我的 PhpStorm 事件日志中仍然有该错误消息。
另外,当我第一次获得 PhpStorm 时,我可以轻松成功克隆,但几天后突然,我得到了类似的事件日志条目。
我能得到一个关于这个问题的解决方案吗,OTL