TortoiseGit初心者です。教えてください。リポジトリ(Trunk)にフォルダ1と2があったとします。A君はフォルダ1のソースファイルをcommit/pushその数時間後、私はフォルダ2のソースファイルをcommitしようとしましたが、同一リポジトリに変更があったからpullしてマージしろとTortoiseGitに言われたので、仕方なくcommit→pull→push(マージ)しました。A君はフォルダ1のソースファイルに(他人の)変更がなければpull(マージ)せずにcommitできているのに、私はフォルダ2のソースファイルに(他人の)変更がなくても、フォルダ1側に変更があるため、毎回pull→push(マージ)を求めれます。別にいいのですが、他人と関係ないフォルダのソースファイルを触っているのに、同一リポジトリだからと言って、毎回マージpushを求めらるので、少々面倒です。A君は、TortoiseGitでどのような操作をしているのでしょうか?TortoiseGit詳しいかたがいたら、時短のために、操作方法を教えてください!要約:[TortoiseGit] 最後にpullして以降、自分が変更したソースファイルを、他人が変更してなければ、マージなしでコミットしたい。その操作方法が知りたい。

1件の回答

回答を書く

1104406

2026-05-03 08:20

+ フォロー

git はあなたの期待しているような管理はしていません。gitの設計思想を理解していないと思います。



①pushとはローカルの内容を全てリモー卜に反映させ、リモートをローカルの全てのフォルダとファイルに完全に一致させる行為です。pushが終わるとロ―カルとリモートは同じものになります。



②リモートでの他者の変更の取り込みはローカル側の責任です。リモートで変更がマージされることは決して有りません。マージはローカルの責任で行うものなのです。リモートはマージされたユミットの受け入れ先に過ぎません。



以上から、gitではリモート上の他者のコミットを全て取り込んでローカルでマ一ジしない限り、pushは許されません。



自分の修正とは別の所の修正だからといってpullの省略を許すとpushで他者の変更が上書きされてリモートが古くなってしまうのです。



gitのpushとはリモートを全て口一カルの内容に置き換え、ローカルとリモートを完全に一致させる処理です。他者の変更を取り込まず自分の変更だけをリモートに送ることは不可能なのです。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有