我已经使用开源软件一段时间了,我为它构建了一个自定义修改。 我有一个公共存储库,其中包含该软件的可编译版本+我的修改,现在,我想将软件更新到其最新版本并插入我的修改。 我怎样才能解决这个问题,同时从存储库中删除旧版本的软件(我发现如果存储库恢复到以前的状态,它仍然可用)
感谢您帮助我!
答案 0 :(得分:0)
如果您有权这样做,则只能更新存储库。如果您没有权限,那么您需要分叉存储库,然后发送拉取请求"。如果存储库的维护者批准您的修改,那么它将被添加到存储库中。
此外,您可以分叉并创建一个新的仓库,并在分叉仓库中保留您的更改。
编辑:要将更改保存到本地存储库,您需要使用以下命令:
git add . //This adds all files you changed to staging area
git commit -m "Save changes" // The text in quotes is for describing the changes.. This commits your changes to local repo
在项目目录中运行这些命令,将保存更改。阅读git基础知识章节:http://git-scm.com/book/en/v2
答案 1 :(得分:0)
如果您想在本地仓库中更新它,您可以执行以下操作:
如果您的更改位于git checkout master
git pull remotename master
的单独分支中,则只需转到主分支并使用以下命令进行更新:
git merge my-branch
在此之后,您可以将更改与更新后的主文件合并:
git checkout -b "my-branch"
在第二种情况下,如果您的更改落后于master,则可以使用您的更改从master创建新分支:
git reset --hard HEAD~n
您可以使用以下方法重置主控中的更改:
n
其中git merge my-branch
是您的提交数量。比我上面显示的更新master分支并将其与你的分支合并:
final float PIXELS_TO_METERS = 100f;
// The first function to launch, runs only once.
@Override
public void create () {
camera = new OrthographicCamera(288, 497);
batch = new SpriteBatch();
bg = new Texture("bg.png");
hat = new Sprite(new Texture("hat.png"));
ground = new Texture("ground.png");
world = new World(new Vector2(0, -9.18f), true);
BodyDef bodyDef = new BodyDef();
PolygonShape shape = new PolygonShape();
FixtureDef fdef = new FixtureDef();
bodyDef.type = BodyDef.BodyType.DynamicBody;
bodyDef.position.set(hat.getX(), hat.getY());
bhat = world.createBody(bodyDef);
shape.setAsBox(hat.getWidth()/PIXELS_TO_METERS,
hat.getHeight()/PIXELS_TO_METERS);
fdef.shape = shape;
bhat.createFixture(fdef);
}
@Override
public void render () {
cameraupdate();
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
worldupdate();
worlddraw();
batch.setProjectionMatrix(camera.combined);
}
public void worldupdate() {
if(fTouch)
world.step(Gdx.graphics.getDeltaTime(), 6, 2);
if(Gdx.input.justTouched()) {
if(fTouch == false)
fTouch = true;
bhat.applyForceToCenter(new Vector2(0, 30), true);
}
}
public void worlddraw() {
batch.begin();
batch.draw(bg, camera.position.x-144, -268, bg.getWidth(),
bg.getHeight()+20);
batch.draw(hat, camera.position.x, bhat.getPosition().y);
for (int i = 0; i < 4000; i++)
batch.draw(ground, i * ground.getWidth() - 287, -250);
batch.end();
}
在这两种情况下,您都会获得更新后的软件。换句话说,如果你想在原始存储库中更新它,你将需要权限,如@Ankit Goel所说。