我对Git很陌生,并且已经阅读了Pro Git的书@ http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging.我的问题是,如果我今天所做的是使用生产服务器和远程Git仓库的首选方式.
我有我的回购托管在GitHub上,使用三个远程分支:开发 - >测试 - >主.
每当"测试"分支被验证正在工作时,我git merge在本地"掌握"'测试'(快进?),并git push在GitHub上"掌握".
在生产服务器上(/opt/www/url.com/)我做了:
git init
git remote add origin https://github.com/.....
git pull origin master
Run Code Online (Sandbox Code Playgroud)
现在每次我想更新主人我发出一个 git pull
git pull origin master
Run Code Online (Sandbox Code Playgroud)
生产永远不会将任何变化推向远程.并且不会发生局部变化.我做得对吗?如果没有,那么将更新提升到生产的首选方法是什么?
编辑#1:我不想管理我现在面临的生产服务器上的任何冲突(不知怎的,我做错了什么).我只想下拉最新更新的主分支,然后切换到它.
我正在使用Git,当我尝试使用XCode的源代码控制菜单使用当前分支拉出一个较新的开发分支时,我收到了以下错误消息:
The operation could not be performed because "ProjectName" has one or more tree conflicts.
Run Code Online (Sandbox Code Playgroud)
如何解决这些树冲突?谢谢
有没有办法从回购中的特定标签中提取/获取代码.
我知道在克隆之后,我可以签出标签,但是可以在拉动期间指定标签吗?
在ClearCase中我可以重新定义或提供特定的代码基线,有没有一种方法可以使用git标签,类似于将代码拉/推到指定的标签?
我被告知你可以通过以下方式从与当前Git分支名称匹配的远程分支推送和拉出:
git push origin HEAD
Run Code Online (Sandbox Code Playgroud)
要么
git pull origin HEAD
Run Code Online (Sandbox Code Playgroud)
它以前总是对我有用,但奇怪的是它有时不起作用,而是推迟从主分支推/拉(这导致拉动合并...而不是我想做的事).我知道你可以通过简单地使用分支的名称来轻松地从你所在的分支推/拉:
git pull origin name-of-branch-i-want-to-pull-from
Run Code Online (Sandbox Code Playgroud)
无论如何:
当我尝试'git push origin master'到我的外部磁盘上的远程存储库时,git警告发出声明,在默认情况下拒绝检出存储库将在下一版本的git中被拒绝.在外部磁盘上我已经检查了项目,我想将我在计算机上所做的更改发送到这些reposiotry.'git push origin master'不是正确的方法吗?我必须在外部磁盘上的存储库中"git pull ..."吗?所以我不能推动改变而只是拉动它们?只与'裸'存储库一起工作是不同的?因此,如果我的外部磁盘上的存储库是一个裸存储库,我可以将更改推送到它吗?我理解得对吗?
让我们说有一个团队有4个开发人员.我们还为我们的项目提供了一个中央存储库.开发人员从中央存储库推送和拉取.这里(在分散但集中的部分)它表示可以在团队成员本地存储库之间推/拉.
每个开发人员都会拉动并推动原点.但除了集中式推拉式关系之外,每个开发人员还可以从其他对等方获取更改以形成子团队......从技术上讲,这仅仅意味着Alice定义了一个名为bob的Git远程,指向Bob的存储库,而且反之亦然
现在的问题是如何定义指向Bob的存储库的远程名称bob.如果重要,开发人员可能会使用不同的操作系
我已经使用GitHub for Mac了一段时间,并准备帮助一位同事在Windows上安装它.
我无法在Mac上找到任何菜单或任何按钮来启动"推"或"拉".我只看到它是打开一个shell并执行git pull.
但那么,用户界面有什么意义呢?
什么解决了我的问题?
我转而使用SourceTree(http://www.sourcetreeapp.com).它解决了我所有的问题:)
我的问题不是这个问题。
\n\n在拉动时,我收到以下错误 -
\n\n\n\n\n错误:无法更新引用\n \'refs/remotes/origin/features/name/surname\xe2\x80\x99:无法附加到\n \'.git/logs/refs/remotes/origin/features/name /姓氏\':不是目录
\n
添加用户权限并没有解决任何问题。
\n\n解决方案-\n然后只需从 GitHub 删除分支即可解决该问题。
\n\n有趣的是,这个分支的目录结构与其他分支不同。
\n\n而其他分支看起来像 -
\n\nrefs/remotes/origin/features/name\nRun Code Online (Sandbox Code Playgroud)\n\n这个看起来像——
\n\nrefs/remotes/origin/features/name/surname\nRun Code Online (Sandbox Code Playgroud)\n 当我这样做git status时说nothing to commit, working directory clean
然后我这样做git pull --rebase,它说:
First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
includes/resources/moduledata/12/_Fr4_02_Invention_IPA_SR_la-Fe?te.pdf
Please move or remove them before you can switch branches.
Aborting
could not detach HEAD
Run Code Online (Sandbox Code Playgroud)
做的时候类似的错误 git pull origin master
* branch master -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
includes/resources/moduledata/12/_Fr4_02_Invention_IPA_SR_la-Fe?te.pdf
Please move or …Run Code Online (Sandbox Code Playgroud) 对我来说,典型的git工作流是克隆远程存储库并使用git pull来使其保持最新.我拉的时候不想要合并提交,所以我使用--ff-only选项.
我还为特色工作设立了本地分支机构.我想保留分支历史记录,所以当我将本地分支合并回我的本地克隆时,我使用--no-ff选项.
如何配置git默认使用这些选项?目前我的.gitconfig看起来像这样:
[merge]
ff = false
[pull]
ff = only
Run Code Online (Sandbox Code Playgroud)
但是,git pull(实际上是git fetch和git merge)似乎正在拾取合并选项,因此创建了合并.
git ×10
git-pull ×10
github ×3
git-push ×2
branch ×1
conflict ×1
git-branch ×1
git-config ×1
git-fetch ×1
git-merge ×1
git-remote ×1
git-status ×1
tree ×1
xcode ×1