我已经在 Linux 机器上安装了 GitLab 6.0 并创建了许多项目。我可以使用 SSH URL 创建每个项目的本地克隆,但是当我尝试使用 HTTP URL 时,我会在几秒钟内收到 504 Gateway Timeout。
访问 http://myserver/group/project.git/info/refs 时,请求的 URL 返回错误:504
Git Gui 还尝试访问 http://myserver/group/project.git/info/refs URL 并收到 504 错误。
当我尝试在浏览器中打开此“info/refs”URL 时,会出现“需要身份验证”弹出窗口,该弹出窗口**不接受**我的 GitLab 用户名/密码或电子邮件/密码。
Eclise EGit 插件具有提供用户名和密码的字段 - 如果我填写这些字段,那么我会得到一个分支列表,但随后我会在克隆操作中收到“读取超时”消息(存储库为 2GB)。这种方法确实适用于我的 GitLab 服务器上的小型项目。
根据说明,我使用了 nginx,但它似乎是我遇到的许多问题的根源。
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production:
System information
System: Ubuntu 12.04
Current User: git
Using RVM: yes
RVM Version: 1.6.9
Ruby Version: …Run Code Online (Sandbox Code Playgroud) 我花了大约20分钟来解决这个问题。
我通过电子邮件收到了一个存储库的 SSH 地址。至关重要的是,它有一个非标准(即不是 22)端口号:
git@domain.com:1234/opt/git/repository.git
我以为我可以将其复制粘贴到 SourceTree 中,但不断收到This is not a valid source path / URL错误消息。
当我仔细查看日志时,错误在于它正在寻找1234/opt/git/repository.git服务器上的路径 - 它将端口号视为路径的一部分。显然没有找到回购协议。
设想:
我需要处理一个具有我不需要的子模块的存储库(实际上,如果由于访问限制等原因我想使用像 SourceTree 这样的 GUI,它会导致错误警告和问题)。
题:
克隆远程仓库时有没有办法忽略子模块?
奖金:
我真的很想知道 SourceTree 是否可以做到这一点?
谢谢!
我在一个分支上工作时有一些隐藏的更改。
我想在不同的分支上本地工作,所以我结帐到一个新的分支并丢失了 sourcetree 侧边栏中的所有隐藏。
这是sourcetree的屏幕截图:
如果我git stash list在终端上输入,我会得到一个隐藏的列表......
stash@{0}: On feature/SITE-5-doctor-name-at-checkin-success: Before commits
stash@{1}: WIP on feature/SITE-5-doctor-name-at-checkin-success: df48232 WIP show dummyDoctor on success page
stash@{2}: WIP on feature/SITE-5-doctor-name-at-checkin-success: 82b1aed Linting
stash@{3}: On feature/SITE-5-doctor-name-at-checkin-success: DEBUG
Run Code Online (Sandbox Code Playgroud)
...所以我知道他们没有迷路。
我如何让它们回到我的 sourcetree 侧边栏,以便我可以在任何这些分支中使用它们?
我手头有一个难题:几个先前提交的文件一夜之间消失了,但没有一个提交表明它们已被删除。怎么会这样?
情况如下:
README.md编辑,.gitignore碰过 ,但自去年 12 月以来它就没有动过。此外,作为进一步混淆问题:几个月前,我添加的文件A.R,并test-A.R在一个单一的提交。后来我将其重命名test-A.R为test.A.R. 现在A.R仍然在存储库中,但既不存在test-A.R也不test.A.R仍然存在。
那么,什么可能导致文件从 Git 存储库中删除而没有任何提交实际删除它们?
附注。当然,我向 BitBucket Support 提交了一张支持票,但我不太相信他们会很快做出回应。
我需要获取开发和我的功能分支之间的补丁/差异。
如何使用git命令获取此信息。
请考虑分支名称是development和test。我需要从测试和开发分支中获取差异。
编辑:
我已按照以下问题中提供的步骤进行操作: 比较 Git 中的两个分支?
差异仅显示在 git 终端中。
如何将差异保存到补丁或差异文件中?
我正在尝试将 SourceTree 安装到我刚到的全新 Acer 笔记本电脑上,当我运行从 Atlassian 下载的安装程序“SourceTreeSetup-2.1.11.0”时,它闪烁了一秒钟,然后弹出错误消息:

这是完整的设置错误日志:
2017-09-02 11:11:32> Program: Starting Squirrel Updater: --install . --rerunningWithoutUAC
2017-09-02 11:11:32> Program: Starting install, writing to C:\Users\blackhatSolo\AppData\Local\SquirrelTemp
2017-09-02 11:11:32> Program: About to install to: C:\Users\blackhatSolo\AppData\Local\SourceTree
2017-09-02 11:11:32> CheckForUpdateImpl: Couldn't write out staging user ID, this user probably shouldn't get beta anything: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\blackhatSolo\AppData\Local\SourceTree\packages\.betaId'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions …Run Code Online (Sandbox Code Playgroud) 问题在于PURE GIT,而不是 GitHub、GitBucket、GitLab 等。
有没有办法使用钩子或其他任何东西,我可以捕捉到某人试图删除远程分支的命令?
类似于命令“push --delete origin branchName”
预推送或更新挂钩,不知道是否执行了“删除”。
很奇怪,不小心或不理解某人可以非常简单地删除甚至像“master”这样的主要分支。一切都可以恢复是正确的,但为什么要这么麻烦?我没办法将它标记为受保护的,或者至少是一些我可以检查它是否正在完成的钩子?
我们只使用 Git 和 GitExtentions,使用简单的 http,我们不会切换到其他工具。
谢谢,伊莱。
我想将 mercurial repo 转换为 git repo。其实我做了,但我没有看到分支。转换 repo 后,我只能看到一个分支(作为 master),我看不到任何其他分支,但我可以看到历史(所有更改)是正确的。单击任何提交时,我可以看到以下信息:
Date: 19 Nisan 2019 Cuma 15:14:37
Committer: sevgi.cakmak
Change dialog header
--HG--
branch : sevgi-2.0.0
Run Code Online (Sandbox Code Playgroud)
但我看不到左侧的 sevgi-2.0.0 分支(我正在使用 sourcetree)。
我的步骤:
mercurial.ini 文件:
[extensions]
strip =
histedit =
rebase =
hggit = C:\Users\sevgi.cakmak\Desktop\hg-git\hggit
hgext.bookmarks =
[git]
intree = True
Run Code Online (Sandbox Code Playgroud)
hg bookmark -r 2.0.0 master(也试过这样hg bookmark -r default master:)然后我从 cmd 处理了这一行
hg gexport --debug //this line converting all revision
Run Code Online (Sandbox Code Playgroud)
在这一行工作后,我的输出是这样的:
converting revision a318482e0769e2fceb13a1545cb477d60a00b434
converting revision e444655d161131f9ed1676f6c175813097fd18g8
converting revision 0ab06d22eaf4ff4ecb96caba343fdcc3a85e367k
converting …Run Code Online (Sandbox Code Playgroud) 多年来,我一直很高兴在 Mac 上使用 SourceTree,很少遇到问题。几周前更新 macOS 后,它突然完全停止工作。每当我尝试对我的任何Git 存储库进行克隆/获取/推/拉/任何操作时,SourceTree 要么
这不是存储库的问题。Github 也发生了这种情况,使用与之前完全相同的存储库和设置。密钥有chmod 400,和以前一样,它是默认密钥~/.ssh/id_rsa。尝试在 SourceTree 和 System Git 中使用嵌入式 Git,但无济于事。我在此期间切换到的另一个应用程序正常工作。
我不记得究竟是哪个 macOS 更新导致了这些问题,但我现在使用的是最新的 macOS Catalina 10.15.4 和 SourceTree 4.0.1。由于另一个问题,我将磁盘彻底擦干净并从头开始重新安装了所有内容,但仍然无法正常工作。我找不到任何关于阻止 SourceTree 访问密钥本身的新访问限制,或者在这种情况下我如何允许访问。这让我发疯了,在此期间我已经切换到另一个应用程序,但如果允许的话,我真的很想继续使用 SourceTree。
编辑:当我在 macOS 上使用 SourceTree 时,我的所有存储库都受到此问题的影响。所有存储库也被其他人使用,当我使用另一个应用程序时,它也适用于我的 Mac。即使是我另一台笔记本电脑上的 SourceTree for Windows,所有这些都使用相同的键。