所以情况如下:
$ git status #On
branch master
#你的分支在[x]提交之前位于'origin/master'之前.
#
关于SO的问题已有几个问题,但似乎没有一个问题专门针对我所拥有的场景类型.其中一个问题的答案最接近,但没有详细说明.
我会直接引用它:
如果在执行"git pull remote branch"后收到此消息,请尝试使用"git fetch"进行跟进.
Fetch似乎更新了远程分支的本地表示,当你执行"git pull remote branch"时不一定会发生这种情况.
这个提示确实有效.但"不一定会发生吗?" 为什么不?我需要了解这一点.什么拉不做?
我不想接管这个问题,所以这是我的详细情景:
涉及三台电脑.我开发的Mac,git repo(即origin/master)所在的家庭服务器以及从该服务器获取的Webfaction帐户.
我提交并且git push origin master仅在Mac上提交.作为正常工作流程的一部分,在Webfaction上运行的唯一命令是git pull origin master(作为Fabric部署脚本的一部分).我不修改那里的代码.我是一个独立的开发者,所以其他任何人都没有.
我偶尔会登录Webfaction并检查一些事情,包括a git status.不可避免地,我总是得到"你的分支在前面......"的信息.跑步git fetch使消息消失.
我将要添加git fetch到Fabric脚本来完成这个问题,但我想知道为什么需要这样做,特别是在源/主的只拉式克隆上.虽然我每天都使用基本功能,但我并不熟悉Git,所以我们将非常感谢新手友好的解释.
按要求更新,相关位来自config:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@[server_address]:[path/to/repo.git]
[branch "master"]
remote = origin
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud) 我正在配置calimoucho(一个小游戏连续集成服务器),为了它工作,我需要运行一个命令从外部拉一个克隆的git hub存储库.
更确切地说,我将用一个例子来解释它.
我有以下存储库
cd /home/sas
mkdir apps
cd apps
mkdir myApp
cd myApp
git init
echo "my file" > file
git add .
git commit -m "initial commit"
Run Code Online (Sandbox Code Playgroud)
只是一个愚蠢的测试存储库,我的应用程序被用于
现在我需要将该存储库克隆到checkout文件夹.
cd /home/sas
mkdir calimoucho
cd calimoucho
mkdir checkout
cd checkout
git clone /home/sas/apps/myApp/
Run Code Online (Sandbox Code Playgroud)
所以我有以下目录结构
~/apps
myapp
.git
file
~/calimoucho
checkout
myapp
.git
file
Run Code Online (Sandbox Code Playgroud)
continuos集成服务器必须从〜/ apps/myapp将新的更改提取到〜/ calimoucho/checkout/myapp,从〜/ calimoucho运行命令行语句
我尝试使用以下命令
~/calimoucho$ git --git-dir=/home/sas/apps/myApp/.git --work-tree=/home/sas/calimoucho/checkout/myApp/ pull
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.
Run Code Online (Sandbox Code Playgroud)
如果我没有指定--work-tree选项,则会发出pull,但更改将应用于〜/ calimoucho文件夹而不是〜/ calimoucho/checkout/myApp
任何想法如何从〜/ …
我正在使用分支来创建和部署out平台的自定义实例.这些实例通常从"主"分支开始,在某种程度上进行定制,部署到测试和生产中,最后归档.
如果将新功能或错误修复添加到主服务器中,我希望能够将它们提取/合并到我的项目实例(分支)中,但我几乎不想将更改从分支合并到主服务器.最近这种情况发生了错误,并造成了一些严重的问题.更新存储库的git pull将所有内容合并到主分支中,然后被推回到主repo中.
是否有任何简单的方法可以禁止合并回主人?或者至少需要一些--force标志?
作为一个相对子模块菜鸟,我想从它的原点更新我的子模块,并做了:
git pull
Run Code Online (Sandbox Code Playgroud)
这导致:
remote: Counting objects: 111, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 57 (delta 54), reused 57 (delta 54)
Unpacking objects: 100% (57/57), done.
From github.com:eteanga/smarty
8e9a011..818ab3e master -> origin/master
You are not currently on a branch, so I cannot use any
'branch.<branchname>.merge' in your configuration file.
Please specify which remote branch you want to use on the command
line and try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
Run Code Online (Sandbox Code Playgroud)
试图解决:
git pull …Run Code Online (Sandbox Code Playgroud) 我有一个git repo,我想做一个拉.git pull没有任何问题,我做正常.问题是我只想要一个特定的目录.我的想法是我可以使用.gitignore这样的规则的文件:
#Ignore all files
/
#Except the one I want
!/temp
Run Code Online (Sandbox Code Playgroud)
问题是这不起作用.这是正确的方法还是有更好的方法?
我使用Xcode存储库GUI与最新版本的Xcode而不是命令行.我做了一个没有问题的初步拉动代表.我对本地文件进行了一些更改.与此同时,我的其他开发人员做了一些更改.我将我的更改提交给了当地的代表,但需要他的更改才能进行正确的构建.我们只有1个分支.
我试图拉动并且Xcode UI报告6个冲突(这是我期望的,因为我需要6个文件来进行正确的构建).
我的问题是如何解决冲突?我在线阅读我应该可以使用屏幕底部的左右按钮让我选择哪个文件版本.我浏览了所有6个文件,并使用正确的按钮选择我想要的更改.
但是,右下角的"拉"按钮被禁用并显示为灰色.
需要阻止root更新git(工作)目录.推理包括但不限于:防止不合适的文件系统所有权更改.
没有任何git钩子在它发生之前似乎阻止了一个fetch/merge/pull,类似于pre-commit hook.或者至少,我在这里(或在手册页中)看不到任何内容:http: //www.analysisandsolutions.com/code/git-hooks-summary-cheat-sheet.htm
思考?
每次我做一个
git pull origin master
Run Code Online (Sandbox Code Playgroud)
Git弹出一个编辑器,并要求我在提交之前写一个关于合并的评论.知道为什么会这样吗?另一位开发人员也在做master的工作,并没有遇到过这个问题.
据我所知,分支配置是正确的.除了我拉动时发生的令人讨厌的合并提交,我能够正常下拉变化并推动变化.
我是laravel的新手,我最近从git-hub中提取了一个项目,它不会运行,因为它缺少.env文件我尝试过composer install但是没有用.有没有其他方法来生成.env文件?
我们是两名学生在我们的在线存储库(不同的回购)上工作,这是从一个共同的上游回购分支.
假设其他学生在特定分支上进行了更改,提交并推送到他的回购.
如何将这些更改提取到我自己的本地存储库中?
我是否需要提交并将这些更改推送到我的舞台区域?
谢谢!