重置是否可以对远程分支?

时间:2016-11-08 08:02:13

标签: git

我看到了命令

 git reset --hard origin/master

正在通过远程跟踪分支工作。

是否可以对远程分支而不是远程跟踪分支进行重置?

2 个答案:

答案 0 :(得分:1)

据我所知,您可以通过创建,推送或删除远程分支来实现与Git客户端远程分支交互的唯一方法。这就是说,运行后

        final Retrofit retrofit = new Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .baseUrl(AirportService.SERVICE_ENDPOINT).build();


    AirportService service = retrofit.create(AirportService.class);

    service.getAirport()
            .subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Subscriber<List<Airport>>()
            {
                @Override
                public void onCompleted()
                {

                }

                @Override
                public void onError(Throwable e)
                {
                    e.printStackTrace();
                }

                @Override
                public void onNext(List<Airport> airports)
                {
                    airps = airports;
                }
            });

您可以通过以下方式强制将跟踪分支推送到远程:

git reset --hard origin/master

答案 1 :(得分:1)

警告:这些命令可以更改历史记录。

只有在您理解并接受风险时才使用它们。

如果适用,命令git reset --hard origin/master对远程分支不起作用;实际上,您告诉本地分支执行的操作是将HEAD移动到origin/master中反映的同一个提交,因为您的存储库知道它。这将 触摸远程分支。

如果之前未运行git fetch,则执行会冒着使用远程存储库的旧版本覆盖本地存储库的风险,该版本完全可以使用{{ 1}}。

如果要重置针对远程存储库的提交,则必须先将它们应用到本地存储库,然后通过git fetch && git reset --hard origin/master强制推送它们。

请注意,您对Git执行的这些更改首先在本地存储库中完成;如果要将它们发布到远程存储库,则必须调用不同的命令。