我的同事和我在同一个存储库上工作,我们已经将它分成两个分支,每个分支在技术上用于不同的项目,但是它们有相似之处,所以我们有时会想要master从... 返回到*branch.
但是,我有branch.我的问题是,我的同事怎么能专门拉那个分支?
一个git clone回购似乎并不在本地创建分支的他,虽然我可以在我结束推后住上unfuddle看到它们.
此外,当我最初创建分支时,我做了-b checkout.不确定这是否有很大的不同?
$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/discover
origin/master
$ git fetch origin discover
$ git checkout discover
Run Code Online (Sandbox Code Playgroud)
这些是我跑的命令.但它绝对不起作用.
我希望能够检查该分支,然后推送并提交来自各个协作者或工作站的分支更改.
执行该命令git clone git@github.com:whatever会在当前文件夹中创建一个名为whatever的目录,并将Git存储库的内容放入该文件夹:
/httpdocs/whatever/public
Run Code Online (Sandbox Code Playgroud)
我的问题是我需要克隆到当前目录中的Git存储库的内容,以便它们出现在Web服务器的正确位置:
/httpdocs/public
Run Code Online (Sandbox Code Playgroud)
我知道在克隆存储库之后如何移动文件,但这似乎打破了Git,我希望能够通过调用来更新git pull.我怎样才能做到这一点?
我通常会提交一份提交列表以供审核.如果我有以下提交:
HEADCommit3 Commit2 Commit1...我知道我可以修改头部提交git commit --amend.但是我怎么能修改Commit1,因为它不是HEAD提交?
我想合并两个已分开一段时间的分支,并想知道哪些文件已被修改.
遇到这个链接:http://linux.yyz.us/git-howto.html这非常有用.
比较我遇到的分支的工具是:
git diff master..branchgit log master..branchgit shortlog master..branch想知道是否有类似"git status master..branch"的东西只能看到两个分支之间不同的文件.
在没有创建新工具的情况下,我认为这是您现在可以做到的最接近的工具(如果文件被多次修改,当然会显示重复):
git diff master..branch | grep "^diff"想知道是否有我遗漏的东西......
我上演了一些改变来承诺; 如何查看为下一次提交而暂存的所有文件的差异?我知道git状态,但我想看到实际的差异 - 而不仅仅是分阶段文件的名称.
我看到git-diff(1)手册页说
git diff [--options] [ - ] [...]
此表单用于查看您对索引所做的更改(下一次提交的暂存区域).换句话说,差异是你可以告诉git进一步添加到索引但你还没有.您可以使用git-add(1)暂存这些更改.
不幸的是,我无法理解这一点.必须有一些方便的单行,我可以创建一个别名,对吗?
master创建了一个新的分支,我们称之为test.
有几个开发人员要么提交master或创建其他分支,然后再合并master.
假设工作test需要几天时间,并且您希望不断test更新内部提交master.
我会做git pull origin master的test.
问题1:这是正确的方法吗?其他开发人员可以轻松地处理相同的文件,就像我工作顺便说一句.
我的工作test已经完成,我准备把它合并回来master.以下是我能想到的两种方式:
A:
git checkout test
git pull origin master
git push origin test
git checkout master
git pull origin test
Run Code Online (Sandbox Code Playgroud)
B:
git checkout test
git pull origin master
git checkout master
git merge test
Run Code Online (Sandbox Code Playgroud)
我没有使用,--rebase因为根据我的理解,rebase将从中获取更改master并将其叠加在其上,因此它可以覆盖其他人所做的更改.
问题2:这两种方法中哪一项是正确的?那有什么区别?
所有这一切的目标是让我的test分支更新所发生的事情,master然后我可以将它们合并回master希望保持时间线尽可能线性.
我试图找出如何下载Git存储库的特定标记 - 它是当前版本背后的一个版本.
我在git网页上看到了以前版本的标签,对象名称为长十六进制数.
但Tagged release 1.1.5根据网站版本名称是" ".
我尝试了这样的命令(名称已更改):
git clone http://git.abc.net/git/abc.git my_abc
Run Code Online (Sandbox Code Playgroud)
我确实得到了一些东西 - 一个目录,一堆子目录等.
如果它是整个存储库,我如何获得我正在寻找的版本?如果没有,我该如何下载该特定版本?
我试图将子模块放入回购.问题是当我克隆父repo时,子模块文件夹是完全空的.
有没有办法让它git clone parent_repo实际上把数据放在子模块文件夹中?
例如,http://github.com/cwolves/sequelize/tree/master/lib/,nodejs-mysql-native指向在外部git的子模块,但是当我结账的sequelize项目,该文件夹为空.
在git rebase origin/development以下错误消息从git显示:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Run Code Online (Sandbox Code Playgroud)
我的git版本是2.9.0.用于在以前的版本中正常工作.
如何通过新版本中引入的强制标记继续使用此rebase,从而允许不相关的历史记录?
git ×10
git-branch ×3
branch ×2
git-clone ×2
git-diff ×2
diff ×1
dvcs ×1
git-commit ×1
git-fetch ×1
git-merge ×1
git-stage ×1
git-tag ×1
rebase ×1
repository ×1