オープンソース プロジェクトを使用しているとします。ルートの公式 github を常に同期させるために、プロジェクトをローカルで git clone し、二次開発のほとんどは公式のコア ファイルと競合しません。はい、ただし個々のファイルは競合します。 。
たとえば、しばらくしてからローカル コンピューターにいくつかの変更を加え、これもいくつかの変更を加えて小規模バージョンをリリースした公式リポジトリです
。現時点では、最新の正式バージョンにアップデートしたいのですが、git pull を使用すると競合が発生します。
オープンソース プロジェクトの二次開発。git pull 経由でいつでも最新バージョンを取得し、ローカルの変更を維持するにはどうすればよいですか?
git pull が最新の公式アップデートを取得するときに競合が発生した場合
git stash を使用してローカルの変更をキャッシュします。
次に git pull して最新の正式バージョンをダウンロードします
次に git stash Pop を使用してローカルの変更をコードにマージし、競合を手動で解決します
簡単にテストしましたが、問題はありませんでした。コードを公式ウェアハウスにプッシュする必要がないため、通常は追加しませんが、この経験の後、いくつかの修正を加え、公式がそれを更新しましたまた何か
git pull を使用してもまだ機能しません。その後、更新を維持して競合をマージするには、上記の stash 手順を繰り返す必要があります。
私がやったことが正しいかどうかわかりません、それとももっと良い方法はありますか?
スタッシュする必要はありません。最初に変更をコミットしてから、プルして競合を解決します。
実際、既にローカル コミット (git commit) を行っている場合、リモートの変更を取得する前に
git stash
,直接git pull
或者先git fetch
再git merge
就可以了。当然,如果你在拉取之前,本地并没有提交(git commit)的话,你的上述操作也是没有问题的,但是,你也可以先将本地的修改做完然后提交了再拉取(git pull)。
其实,你的
git stash
应用的场合不太合适,git stash
一般用于你在某一分支工作做了一半(还不值得做一次提交或者压根还不想提交)时,你突然想切换到其他分支做一点儿别的事。这时,用git stash
する必要がなければ完璧です。