我想要的是:
使用我的本地存储库在所有分支中更新服务器的所有新闻提交,但不合并任何分支(只需加入历史记录行).
我正在尝试这个命令
git fetch --force --progress --verbose name@host:/path/to/repository.git
Run Code Online (Sandbox Code Playgroud)
我认为它会正常工作,因为它显示:
From host:/path/to/repository
* branch HEAD -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
但是,这意味着什么呢?如果我看到日志,则不会更新.如果我从服务器进行克隆,则所有新提交都在那里.所以...命令不起作用.然后我尝试使用服务器中存在但不在我的本地存储库中的分支
git fetch --force --progress --verbose name@host:/path/to/repository.git my_branch
Run Code Online (Sandbox Code Playgroud)
结果是:
From host:/path/to/repository
* branch my_branch -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
并且任何成功......即使我不知道所有分支和我的分支都是更新,我想获取此更改并可以在我的日志中看到.
有什么想法吗?
这主要是好奇心的本质,因为我正在努力熟悉Git.我查看了'git fetch'的文档,但我没有看到下面的明显解释.在此先感谢,如果这是显而易见的,请道歉.
1)从中央存储库,比如说GitHub,我克隆一个名为website两台机器上的存储库,HostA和HostB.
2)on HostA,我对文件进行了更改,比如说README.txt,然后提交它.
在这一点上HostA,分支的提交master和
origin/master预期的不同,因为我尚未推动
git show master
git show origin/master
Run Code Online (Sandbox Code Playgroud)
报告不同的哈希值(因为master有变化而origin/master没有)
3)一旦我推,他们就是在那之后.
4)现在,HostB如果我做了以下事情:
git fetch
git merge FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
之后,在HostB上master并origin/master在查询时报告相同的哈希值git show
但
如果相反我做了,在HostB:
git fetch origin master
git merge FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
在那一点上,哈希仍然不同.
git show origin
git show origin/master
Run Code Online (Sandbox Code Playgroud)
报告不同的哈希值
跟踪分支origin/master在我做普通之前不会更新git fetch
为什么是这样?
我对今天Javascript中相对路径的体验感到惊讶.我把情况归结为以下情况:
假设您有一个目录结构,如:
app/
|
+--app.html
+--js/
|
+--app.js
+--data.json
Run Code Online (Sandbox Code Playgroud)
我app.html所做的一切都是运行js/app.js
<!DOCTYPE html>
<title>app.html</title>
<body>
<script src=js/app.js></script>
</body>
Run Code Online (Sandbox Code Playgroud)
app.js加载JSON文件并将其粘贴在以下的开头body:
// js/app.js
fetch('js/data.json') // <-- this path surprises me
.then(response => response.json())
.then(data => app.data = data)
Run Code Online (Sandbox Code Playgroud)
数据是有效的JSON,只是一个字符串:
"Hello World"
Run Code Online (Sandbox Code Playgroud)
这是一个非常小的用法fetch,但我很惊讶我传递给的URL fetch必须是相对app.html而不是相对的app.js.我希望这条道路的工作,因为data.json和app.js在同一个目录(js/):
fetch('data.json') // nope
Run Code Online (Sandbox Code Playgroud)
有没有解释为什么会这样?
以下git命令有什么区别?
git fetch origin
Run Code Online (Sandbox Code Playgroud)
和
git fetch --all
Run Code Online (Sandbox Code Playgroud)
从命令行运行它们看起来像是做同样的事情.
我有一个本地域(markfisher.local),我为其制作了自签名证书,并将其添加到钥匙串访问中的证书中(我使用的是 Mac)。这会导致该证书在 Chrome 和 Safari 中受到信任。如果我将 KeyChain Access 中的证书信任编辑为“从不信任”,则 Chrome 和 Safari 不再接受它,然后如果我将其改回“始终信任”,则我可以再次访问 markfisher.local。
但是当我在 Firefox 中访问该网站时,我得到以下信息:
markfisher.local 使用无效的安全证书。该证书不是来自受信任的来源。错误代码:MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY
我已按照此答案中的建议security.enterprise_roots.enabled设置为。另外,转到“首选项”>“隐私和安全”>“查看证书”,我可以看到我的证书位于“权限”选项卡中,并且我已在“编辑信任”对话框中选中“此证书可以识别网站”。原来没有检查这个true
但是 Firefox 拒绝接受该证书。我怎样才能解决这个问题?
故事:
我一直在台式机和笔记本电脑上开发一款RoR应用程序.提交对另一个进行的更改非常方便,将它们推送到github并在其他方面进行获取和合并.
起点是这样的:我在桌面上提交了最新的更改,将它们推送到github,然后将它们合并到我的笔记本电脑中.然后,我在笔记本电脑上做了一些提交并推送到github.进行更改,合并到我的桌面(使用--no-ff).然后,发生了所有恶作剧的可能来源:我恢复了桌面以提交最新的获取和合并之前的位置.做了一些开发工作,承诺,推送到github.在笔记本电脑中,我也做了恢复工作,虽然我将它恢复为一个提交,它在github的最新提取之间,再次提取并合并它们.恢复台式机和笔记本电脑之后出现了一些错误消息,但事情仍然相当顺利,我一直在两台机器上工作.
到现在.我试图从我的笔记本电脑推送到github,它提供了以下输出:
Counting objects: 106, done.
error: unable to find 5a2a4ac...
error: unable to find bc36923...
error: unable to find ecb0d86...
error: unable to find f76d194...
error: unable to find f899df7...
Compressing objects: 100% (64/64), done.
fatal: failed to read object 5a2a4ac... : Invalid argument
error: failed to push some refs to 'git@github:username/repo.git'
Run Code Online (Sandbox Code Playgroud)
那么,问题是,究竟发生了什么?
编辑:似乎因为暂停我的笔记本电脑并将其从一个地方移动到另一个地方以某种方式搞砸了硬盘驱动器.fsck输出不可用,因为我们解决了问题并继续工作,但是IIRC的一些分支和提交都悬空,包括git无法读取的提交. - Teemu
我刚添加remote A了我的另外repo B,然后运行git fetch A
如何撤消提取?如果我只是删除remote A:git remote remove A1它会撤消提取吗?
更新:
repo B
repo A
以上是我运行的命令,结果我将所有分支都提取到了我repo B但是我只需要一个特定的分支remote A,我需要它进入特定文件夹repo B但是这是另一个故事两个不同的git存储库之间的合并代码
使用案例:我在GitHub上有一些回购,有人将它分叉并添加了新功能并启动了拉取请求.我不能自动合并它,因为我想先解决一些小问题.
这是一次性活动,我永远不需要这个远程存储库,所以我不想创建本地remote分支.
基本上我想做:
怎么做?
git checkout git://github.com/xxx/xxx.git 根本不起作用(失败并出错)
git fetch git://github.com/xxx/xxx.git 有效但不更新任何东西
某个遥控器的Fetch URL和Push URL何时不相同?
例如,当我运行git remote show central远程命名为central时,输出如下:
* remote central
Fetch URL: aoberoi@example.com:/home/aoberoi/Repositories/example.git
Push URL: aoberoi@example.com:/home/aoberoi/Repositories/example.git
HEAD branch: master
Remote branch:
master tracked
Run Code Online (Sandbox Code Playgroud)
我只是不明白为什么我会从两个不同的URL中获取和推送,这是什么类型的工作流程?
编辑:我已经检查过这个在Git中的FETCH_HEAD是什么意思? 在提出问题之前.
抱歉原始的不准确的问题.
我的问题是fetch是如何工作的?fetch会丢弃所有当前日志吗?
这是我的情况:我的队友和我正在使用只有一个分支的相同存储库.因此我们必须在推送之前进行提取.
我们通常这样做:
git status
git add .
git commit -m message1
git fetch origin
git reset head
git status
git add .
git commit -m message
git push
Run Code Online (Sandbox Code Playgroud)
但重置后,似乎我之前的提交(with message1)已经消失.
这是正常的还是有什么不对?
我如何访问我的本地历史记录?
它们已经同步但我的当地历史已经消失.
老员工,算了吧:我最近一直在学习Git CLI.
有人告诉我键入" git fetch head"以跟踪远程分支.
但我想知道这是做什么的?此命令是否覆盖我的本地日志?
" git fetch"和" git fetch head" 之间有什么区别?
git ×8
git-fetch ×8
merge ×2
branch ×1
certificate ×1
fetch-api ×1
firefox ×1
git-checkout ×1
git-remote ×1
github ×1
javascript ×1
keychain ×1
path ×1
pull ×1
push ×1
ssl ×1
trust ×1
workflow ×1