我仍然学习git而不确定一些基本的东西是如何运作的.我做了一个本地分支:
git branch AppStore
Run Code Online (Sandbox Code Playgroud)
我不记得我是如何将这个分支推送到github.com的,但我可以在存储库中看到MyBranch.当我做
git branch -a
Run Code Online (Sandbox Code Playgroud)
我看到了这个:
ARC
* AppStore
Refactoring
Release3
master
remotes/origin/AppStore
remotes/origin/HEAD -> origin/master
Run Code Online (Sandbox Code Playgroud)
还列出了更多的遥控器.因此,在我创建分支的计算机上,我看到了AppStore分支.但是,我的同事都不能.当我们尝试了
git pull origin AppStore
Run Code Online (Sandbox Code Playgroud)
它抓住了变化.但是当我们尝试时
git checkout AppStore
or
git checkout origin AppStore
Run Code Online (Sandbox Code Playgroud)
我们无法做到.我们缺少什么?谢谢!
编辑:
我根据VonC的回答尝试了这个:
git push --set-upstream origin AppStore
Run Code Online (Sandbox Code Playgroud)
在输入我的凭据后,我得到:
Branch AppStore set up to track remote branch AppStore from origin.
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
但我的同事仍然看不到分支: - .
我有一个情况,我有一个老年人的CVS存储库,我们希望一次性转换为git,同时保持完整的历史记录等.
存储库根目录下的所有文件夹都包含Eclipse项目(普通或动态Web项目),包括.classpath和.project.我们使用Team ProjectSet来检查给定任务所需的项目(项目集位于包含main的项目中,其余是库项目).
签出Team ProjectSet后,工作区将完全填充.
多年来这种方法运作良好(除了3.5附带的项目设置部分),如果可能的话,我们希望以类似的方式使用git,但我们不确定如何.
我玩过一段时间git cvs import但失败了 - 可能是因为我们没有使用模块.
您如何建议我们这样做,以及我们应该如何使用git来允许我们当前使用共享库项目?我们将HAVE介绍Maven和创造我们的图书馆项目的Maven模块?或者只是蚂蚁常春藤?
编辑:我现在设法通过合适的cvs2svn调用将我们的CVS存储库转换为Subversion,并发现Eclipse很好地识别了生成的Subversion存储库.不幸的是在克隆http: //github.com/iteman/svn2git`并尝试运行bin/svn2git之后我得到了
tra@Sandbox:~/cvsgit/svn2git/svn2git$ bin/svn2git
bin/svn2git:35:in `initialize': wrong number of arguments (2 for 1) (ArgumentError)
from bin/svn2git:35:in `new'
from bin/svn2git:35
Run Code Online (Sandbox Code Playgroud)
这是与Ubuntu 10.04.1 LTS服务器,我尝试了各种sudo与Ruby及其宝石的东西,但没有完全理解我做了什么,因为我不是一个Ruby程序员,所以我可能搞砸了一些东西.我很感激建议 - 如果最简单的是安装另一个Linux变种来进行转换,那很好.
编辑:
https://help.ubuntu.com/community/Git http://css.dzone.com/articles/subversion-git-morning
编辑:我第一次尝试使用默认的svn2git成功完成(一段时间后),我得到一个很好的存储库,其中git branch -a大致报告
tra@Sandbox:~/gitroot/svnroot$ git branch -a
* master
remotes/XX64_DEPLOYED_CODE
remotes/Beta1
remotes/Beta2
remotes/SV46
... lots more
Run Code Online (Sandbox Code Playgroud)
我们有兴趣能够检查SV46分支并使用它(我们基本上不关心标签,只关心实际的分支).我已经设置了gitosis并将此存储库推送到gitosis,并将其克隆到另一台计算机,以了解如何使用Eclipse进行"使用SV46"位. THAT库不知道所有的分支:
tra@TRA ~/git/git00 (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
我是否需要按照svn2git的原始结果来获取gitosis存储库中的信息?我需要用参数克隆吗?我应该使用建议的版本而不是Ubuntu附带的版本重做svn2git步骤吗?
编辑:事实证明,使用"git …
我在当地有2个分支,例如:
- FirstApp
- SecondApp
如何将它们都推送到远程仓库?我还需要在远程创建两个分支吗?
非常感谢!
我可以这样说:
git push --all origin
Run Code Online (Sandbox Code Playgroud)
它会将所有分支推向原点.但如果我这样做:
git pull --all origin
Run Code Online (Sandbox Code Playgroud)
然后它不会从原点拉出所有分支,它只返回一个错误:
fatal: fetch --all does not take a repository argument
Run Code Online (Sandbox Code Playgroud)
好的,我这样做:
git pull --all
Run Code Online (Sandbox Code Playgroud)
买还是说:
You asked to pull from the remote '--all', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
Run Code Online (Sandbox Code Playgroud)
那么如何从原点拉出所有分支(就像我将所有分支推送到原点git push --all origin)?
前段时间我分叉了一个 git repo。从那以后,有几个新的提交到 master 分支。https://help.github.com/articles/syncing-a-fork/解释了如何将上游主分支与本地主分支同步,然后将这些提交推送到我的分支。
但是它没有提到如何同步新的上游分支。当我最初在 github 上 fork 项目时,它看起来像它带来了所有当时的分支。
我看过有关如何一次同步一个分支的解释。有没有办法一次同步所有新旧分支?
I haven't made any commits to my fork. Thus I am looking for a fast forward sync.
Edit: Another way to say this:
I want
git ls-remote origin
Run Code Online (Sandbox Code Playgroud)
to match
git ls-remote upstream
Run Code Online (Sandbox Code Playgroud)
This would include branches and tags.
我有2个github帐户公司一个和个人帐户
我使用cygwin来管理我的ssh密钥并连接到Github
一切正常在IntelliJ中使用公司帐户,因为它使用默认的.ssh/id_rsa键
使用我的个人帐户,Everthing在Cygwin中正常工作,因为我可以使用"ssh-add~/.ssh/ide_rsa_otherkeyfile"命令,然后通过命令行使用所有git命令
但IntelliJ始终默认为"id_rsa"文件,因此我无法连接到我的个人仓库.
IntelliJ有没有办法使用其他rsa密钥?
所有这些RSA和cygwin都高于我的linux命令行体验级别.
注意:我还在.ssh目录中创建了配置文件,以方便多个github帐户
Default GitHub user (corporate account)
Host github.com HostName
github.com User git IdentityFile/Users/username/.ssh/id_rsa
Client user (personal account)
Host github-client
HostName github.com
User git IdentityFile /Users/username/.ssh/id_rsa_perso
Run Code Online (Sandbox Code Playgroud)
简而言之,它的作用是告诉SSH在连接到服务器github-client时使用客户端密钥,这实际上是github.com.
如果没有人有解决方案,我知道邀请我的公司帐户作为贡献者会更容易,但之后我会在2个单独的电子邮件帐户下提交.
对于已通过删除的远程分支git prune --all origin,如何恢复它们?
有超过100个分支机构,由20人的团队共享,每个人都在不同的分支机构工作.
我曾经在我的私人git服务器上创建一个repo
git init --bare
Initialized empty Git repository in /home/poc/git_repo/local_display_multi_langs .git/
Run Code Online (Sandbox Code Playgroud)
然后我试着add remote在我的mac上工作.
git remote add origin ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git
Run Code Online (Sandbox Code Playgroud)
执行以下命令
514 git flow init
519 git flow feature start read_xml
524 git ci -am "first ci"
Run Code Online (Sandbox Code Playgroud)
然后尝试将所有分支推送到我的私有git服务器的repo并获得如下例外
[src] $ git push origin feature
poc@172.19.16.101's password:
error: src refspec feature does not match any.
error: failed to push some refs to 'ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git'
Run Code Online (Sandbox Code Playgroud)
我错过或误用了一些步骤吗?
如何将我的工作副本上的所有分支推送到远程服务器?
然后当我从我的git服务器克隆项目时.
如何获得新的克隆项目和原始项目是完全相同的.
感谢@VonC
现在,我可以将本地工作副本上的所有分支推送到远程服务器
git push origin --all
但是当我ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git
在另一个文件夹下执行git clone时.
[local_display_multi_langs] $ git …Run Code Online (Sandbox Code Playgroud) 我正在寻找远程分支并陷入某种循环.
我取一次然后得到:
$ git fetch
* [new branch] minorRelease/something-> origin/minorRelease/something
Run Code Online (Sandbox Code Playgroud)
然后我再次获取并得到:
$ git fetch
* [new branch] minorRelease/Something-> origin/minorRelease/Something
Run Code Online (Sandbox Code Playgroud)
相同的分支但有资本S.
我试图从以下文件夹中删除该文件.git/refs/remotes/origin/minorRelease,但是当再次获取时,我得到两个并返回上面的循环:
$ git fetch
* [new branch] minorRelease/Something-> origin/minorRelease/Something
* [new branch] minorRelease/something-> origin/minorRelease/something
Run Code Online (Sandbox Code Playgroud) 我是git的新手,并试图围绕分支的工作方式.根据文档git checkout
更新工作树中的文件以匹配索引或指定树中的版本.如果>没有给出路径,git checkout也会更新HEAD以将指定的分支设置为>当前分支.
所以据我所知,我工作的目录中的文件(我执行git init的文件)应该根据我所在的分支进行更改.我很困惑,因为当我在分支之间切换时不会发生这种情况.在切换分支之前我正在编辑的编辑存在于我切换到的分支中.我做错了什么或git checkout不能这样工作,我只是误解了文档?