私は自分の論文にgitを使い始めたばかりです。私の質問は、私にとって適切なワークフローは何かということです。ここに私の前提条件があります:
使用したハードウェア:
- 自宅で使用するノートパソコンA
- ラップトップB私が図書館にいるときに使用するネットブック
- 大学のデスクトップコンピュータ
- gitも実行している私の大学のサーバー上のプライベートファイルスペース(大学によってプレインストールされていますね)
私が知るまで私がしたことは、LaTeXを使って自分の論文を書き、それをこれらすべてのコンピューター間で手作業でコピーすることです。私がsthを書いていることがよくあります。あるマシンで休みがあり、最新バージョンがどこにあるのかわかりません。このような場合、diffを使用して比較し、最新のドキュメントを見つけました。
gitについて少し読んだところ、それが私に大いに役立つことがわかりました。サーバーに中央リポジトリを配置し、すべてのコンピューターでサーバーにプッシュ/プルするようなものを考えました。
これで、サーバー上にベアリポジトリを作成しgit init
、各コンピューター上に(によって)ローカルリポジトリを作成しました。
しかし、これが正しいかどうかはわかりません。現在、すべてのコンピューターが同期しているため、すべてのローカルリポジトリに同じファイル/バージョンが含まれています。ラップトップAからサーバー上のベアリポジトリにプッシュしました。
サーバーリポジトリからデスクトップコンピューターにプルしようとしました:
git pull origin master
出力:
* branch master -> FETCH_HEAD
Merge made by the 'recursive' strategy.
私が正しく理解していれば、それは私のデスクトップコンピュータにブランチを作成しました。この後、デスクトップPCでの作業を開始する前に、さらに操作を適用する必要がありますか?
別の試みは:
git pull origin master:master
出力:
! [rejected] master -> master (non-fast-forward)
理由はわかりませんが、Gitの本で読んだ限りでは、これは予想される動作です。これにより、プルするたびに新しいブランチが作成されるのを防ぐことができませんか?
とにかく、私は今ここでstackoverflowに関する多くの投稿を読み、公式のgitブックのいくつかの章も読んでいますが、私の頭は少しハミングしています。
ここで始めたワークフローが、私が達成したいことに対してまったく正しいかどうかはわかりません。たぶん、サーバーgitを使用するのではなく、ファイルスペースにクローンを作成する必要がありますか?誰かが私を正しい軌道に乗せることができますか?
どうもありがとう。