天道酬勤,学无止境

git-remote

引起:java.lang.ClassNotFoundException:com.jcraft.jsch.JSchException(Caused by: java.lang.ClassNotFoundException: com.jcraft.jsch.JSchException)

问题 本地仓库和远程仓库之间的协议是HTTPS而不是ssh,还需要jsch的lib吗,如果是真的能告诉我具体怎么处理吗,非常感谢~~ 回答1 即使不用于https访问,JGit仍然需要jsch。 请参阅 JGit 依赖项。 即使在克隆 https 存储库时,该线程也声明了相同的内容。 这篇博文处理了一个缺失的 jsch 库,如下所示: 有两种方法可以解决此问题,具体取决于您的设置。 1.) 如果您使用安装在您的机器上的 ant,例如在 c:\apache-ant 上。 只需将 jsch.jar 放在它的 lib 文件夹中。 2.) 如果您使用的是 eclipse 的 ant 插件。 打开日食单击窗口->首选项在类型过滤器文本框中输入“ant” 单击运行时展开“全球条目” 添加外部jar,并在您的系统中找到jsch.jar

2021-07-12 23:45:59    分类:技术分享    git-remote   JGit

不能同时创建本地和远程分支(跟踪)(Can not create a local and remote branch (tracking) at the same time)

问题 来自 Pro Git: 如果您愿意,您可以设置其他跟踪分支——那些不跟踪原始分支和不跟踪主分支的分支。 简单的例子就是你刚才看到的例子,运行 git checkout -b [branch] [remotename]/[branch] $ git checkout --track origin/serverfix 分支 serverfix 设置为跟踪远程分支 refs/remotes/origin/serverfix。 切换到新分支“serverfix” $ git checkout -b sf origin/serverfix 分支 sf 设置为跟踪远程分支 refs/remotes/origin/serverfix。 切换到新分支“sf” 我的理解是,这提供了一种创建本地分支和上游分支的方法。 但是当我这样做时: git checkout -b iss53 origin/iss53我得到: fatal: Cannot update paths and switch to branch 'iss53' at the same time. 当我这样做时: git checkout --track origin/iss53我得到: 致命:无法同时更新路径和切换到分支“iss53”。 您是否打算签出无法解析为提交的“origin/iss53”? 为什么? 回答1 Cannot

2021-07-12 18:27:42    分类:技术分享    git   version-control   git-branch   git-remote

Preserve git remotes

I have fixed network of git remotes and I would like them to be attached to repository. Unfortunately git-clone doesn't clone remotes. Is there a way around it?

2021-07-11 23:15:21    分类:问答    git   git-clone   git-remote

在“git-pull”自动合并后如何更改提交消息?(How do I change a commit message after a 'git-pull' auto-merge?)

问题 有时,我的合作者会在自动合并生成git-pull时“恐慌”,并且只接受默认提交消息。 在此提交被推送之前,我想确保消息得到修复,但--amend似乎不起作用。 修复在这种情况下生成的消息的最佳方法是什么。 我能为他们提出的最好的说明是 git reset --soft HEAD~ git merge -m <message> <the tracked remote branch> 但这似乎有点可怕( reset )并且容易出错(必须明确输入远程跟踪分支)。 是否有一种简单的方法可以更改刚刚通过与远程跟踪存储库合并生成的提交消息? 为什么--amend不起作用? 回答1 git commit --amend应该在这种情况下工作。 究竟是什么不起作用? 回答2 你总是可以尝试使用 git pull --rebase 来将你的提交放在树的顶部。 但是 git 警告不要使用这种说法。 “这是一种潜在危险的操作模式。它会重写历史,当您已经发布该历史时,这并不是一个好兆头。除非您仔细阅读了 git-rebase(1),否则不要使用此选项。” (http://git-scm.com/docs/git-pull) 如果您可以消除合并的历史记录,那么这就是您的选择。 回答3 @{u}是<the tracked remote branch>一个很好的替代品,然后你就可以将这两个步骤合二为一。

2021-07-11 04:46:37    分类:技术分享    git   git-merge   git-remote   git-reset

为什么 git remote sill 的旧名称在 .git/refs/remotes 中?(Why is old name of git remote sill in .git/refs/remotes?)

问题 我最近将我的“主要”远程 git 存储库从code.google移到了github 。 然后,我将旧的origin repo 重命名为code-google并将之前创建的远程github重命名为origin 。 到现在为止还挺好。 但... .git/refs/remotes中仍有引用: code-google github origin 我试过这个,但它似乎不起作用: $ git remote prune github --dry-run fatal: 'github' does not appear to be a git repository fatal: The remote end hung up unexpectedly 为什么github改名后还存在? 为什么我无法处理它? 我怎样才能清理我的回购? 回答1 这个线程 (现已删除)提到重命名遥控器是不够的: 如果你想真正完整,你还应该删除你的“ origin ”引用: rm -R .git/refs/remotes/origin 更安全的方法是克隆新的远程仓库(现在在 GitHub 上),并添加另一个远程仓库。

2021-07-11 03:35:15    分类:技术分享    git   git-remote

Git:如何更改远程存储库上的活动分支?(Git: how to change active branch on remote repository?)

问题 我在本地分支上编写了一些代码,然后使用以下命令将其推送到远程测试存储库: git push origin fix_vouchers:fix_vouchers 我想更改该远程存储库上的活动分支,以便其他开发人员可以测试此代码。 我可以在本地环境中执行此操作吗? 回答1 如果远程存储库只是一个共享点,一个裸存储库,您最好只将包含代码的分支传达给其他开发人员。 然而,在稍后的评论中,您暗示远程存储库是用作网站的结帐。 您应该注意,即使您推送到当前活动的分支,推送也不会自动检查该分支的 HEAD。 如果您没有对远程机器的任何 shell 访问权限,我认为不可能做您想做的事。 如果你在那里有任何影响,你可以要求设置一个 post-receive hook 来检查新的分支。 当然,如果您有 ssh 访问权限,只需 ssh remote.net "cd /path/to/repo; checkout fix_vouchers" 回答2 我的看法。 远程中没有所谓的活动分支。 由您决定分支是否处于活动状态。 来到你的场景。 您可以将新分支推送到名为 releaseCandidate 或 release 或 devBranch 的远程。 然后告诉大家使用它作为测试/开发分支。 但是,如果您的问题是其他开发人员正在使用某些特定脚本来结帐,则您可能需要更改该脚本。 回答3 不

2021-07-11 01:59:11    分类:技术分享    git   git-branch   git-remote

如何设置 git 分支以推送到具有不同分支名称的远程并从完全不同的 url 中拉取(How to set a git branch to push to a remote with a different branch name and pull from completely different url)

问题 我的本地 git repo 需要从一台服务器上拉取。 然后它需要将特定分支推送到不同服务器上具有不同分支名称的评论仓库。 类似于:从服务器 1 上的 PullOnlyRepo 中提取所有内容(我们可能会称其为原点?)将分支修补程序推送到服务器 2 上具有分支名称 JistChanges 的 ReivewRepo。 现在 git config -l 显示: remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* remote.origin.url=<URL for Server1> remote.origin.pushurl=no_push (this shouldn't matter since it is a pull only repo) branch.production.remote=origin branch.production.merge=refs/heads/production remote.review.url=<URL for Server2> remote.review.fetch=+refs/heads/*:refs/remotes/review/* git pull 做我想要的(从 Server1 上的正确位置获取更改并将它们合并到我的工作树中)。 但是 git push 没有。

2021-07-10 13:08:24    分类:技术分享    git   git-branch   git-remote

如何从git裸远程存储库中删除文件?(How to delete files from git bare remote repository?)

问题 我有一个远程裸 git 存储库。 一个新开发人员克隆了它,但他没有正确配置的 .gitignore 文件,因此他错误地将一些不需要的文件推送到远程。 当我拉取更改并合并时,我得到了这些以前未跟踪的文件。 其他人也从远程提取更改并拥有这些不需要的文件。 如何从远程存储库以及其他所有人的远程/源/分支中删除这些文件? 回答1 这是一个三步过程: 从您的存储库副本中删除文件(使用 git rm 或从您的历史记录中完全清除这些文件,具体取决于这些文件从不首先出现在存储库中的重要性) 使用 git push --force 将更改推送回远程存储库。 让每个人都知道他们可以重新拉取存储库 - 这将需要他们在最后一次知道好的提交上的工作的 git rebase。 作为最后一步,您可能还想将.gitignore文件添加到存储库,以便在克隆存储库时忽略所有正确的文件。 回答2 请参阅 github 对此的常见问题解答:https://help.github.com/articles/remove-sensitive-data 以下是步骤: 从本地(工作)树重写树。 $ git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' \ --prune-empty --tag-name-filter cat

2021-07-10 07:52:53    分类:技术分享    git   git-remote

how to request pull request from a particular remote in git?

This is how my config file of git looks: [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = false [remote "origin"] url = git@github.com:XXXXXXX/training.test.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [remote "upstream"] url = https://github.com/YYYYYYY/training.test.git fetch = +refs/heads/*:refs/remotes/upstream/* The remote "origin" points to my github account The remote "upstream" points to a different github account from where I forked into mine. Q1

2021-07-10 02:40:03    分类:问答    git   github   git-push   git-pull   git-remote

远程 Pushurl 不起作用(Remote Pushurl won't work)

问题 我在我的项目中使用 GIT。 现在我想把它与github集成,所以我创建了一个远程: git remote add github https://WouterJ@github.com/WouterJ/project.git 但是现在我需要填写一个密码来获取,这是我不想要的。 所以我决定使用不同的 url 来获取: git remote set-url github http://github.com/WouterJ/project.git git remote set-url --push github https://WouterJ@github.com/WouterJ/project.git 如果我运行git remote -v我得到这个: $ git remote -v github http://github.com/WouterJ/project.git (fetch) github https://WouterJ@github.com/WouterJ/project.git (push) origin http://github.com/WouterJ/project.git (fetch) origin http://github.com/WouterJ/project.git (push) 正是我想要的,我想。 但是当我进行推送时,我需要填写我的用户名。

2021-07-09 16:28:31    分类:技术分享    git   github   git-remote