更新存储库上的软件代码

时间:2015-06-16 17:43:31

标签: git

我已经使用开源软件一段时间了,我为它构建了一个自定义修改。 我有一个公共存储库,其中包含该软件的可编译版本+我的修改,现在,我想将软件更新到其最新版本并插入我的修改。 我怎样才能解决这个问题,同时从存储库中删除旧版本的软件(我发现如果存储库恢复到以前的状态,它仍然可用)

感谢您帮助我!

2 个答案:

答案 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所说。