- コンフリクトの処理 =======
4.1 リモートリポジトリへのpushが失敗する場合、pullを先に行う必要がある場合
リモートリポジトリとローカルリポジトリのバージョンが一致していない可能性があります。このため、まずgit fetch originで更新を取り込み、次にgit merge origin/masterでマージを行います。その後、git push origin mainでローカルの変更をリモートにプッシュします。
4.2 コンフリクトの解決方法:
例えば、SampleCode.javaファイルでコンフリクトが発生した場合、以下のような内容になります:
public class SampleCode{
public static void main(String[] args){
<<<<<<< HEAD
y
=======
System.out.
>>>>>>> 3c4d2987abc123ea55fc4fc39709765c6baeb037
}
}
<<<<<<< HEADと=======の間の内容はローカルのファイル内容です。
=======と>>>>>>> 3c4d2987abc123ea55fc4fc39709765c6baeb037の間の内容はリモートのファイル内容です。
必要な部分を残し、不要なコメントや変数を削除してから再びgit add, git commitを行い、最後にgit pushします。
- 変更の取り消し ======
5.1 追加済みだがコミット前の変更を取り消す(git restore --):
git reset HEAD *を使用すると、ステージングエリアの変更をワークスペースに戻せます(つまり、追加されたがまだコミットされていない変更を元に戻します)。
5.2 ファイルが変更または削除されているが、まだ追加されていない場合の取り消し:
たとえば、TestFile.javaを誤って削除したり変更したが、まだ追加していない場合、git restore .を使用してすべての作業を取り消せます。ただし、慎重に使用してください。特定のファイルのみ復元したい場合は、git restore TestFile.javaを使用するのが推奨されます。Javaファイル全体の復元にはgit restore *.javaを使えます。EclipseではF5キーでファイルを更新する必要があります。
5.3 既にコミットされた変更を取り消す(git reset):
コミット後の変更を取り消すにはgit reset --hard HEAD~1を使用しますが、注意が必要です。
- Gitの基本概念 =========
Gitを使ってコードを管理するには、最初にファイルをトラッキングする必要があります。新規ファイルは未トラッキング状態(untracked)であり、git addでステージングエリアに移動させ、git commitでリポジトリにコミットします。これによりファイルがスナップショットとして保存され、バージョン管理が可能になります。
- EclipseプロジェクトのGit管理(コマンドライン) ===========================
EclipseではEGitプラグインも利用できますが、コマンドラインでの操作をお勧めします。
7.1 Giteeでプロジェクトを作成
初期化時にREADMEファイルを含めないよう注意してください。
7.2 Gitのグローバル設定:
git config --global user.name "YourName"
git config --global user.email "YourEmailAtGitee"
7.3 Eclipseでプロジェクトを作成し、Gitで管理
例えばGitProjectというプロジェクトを作成し、その下にREADME.mdを作成します:
cd GitProject
git init
git add .
git commit -m "initial commit"
git remote add origin https://gitee.com/user/GitProject.git
git push -u origin main
異なる履歴を統合する際はgit pull origin main --allow-unrelated-historiesを実行し、その後git push origin mainを行います。
7.4 .gitignoreファイルの追加
プロジェクトディレクトリに.gitignoreファイルを作成し、以下のように設定します:
*.class
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.ear
hs_err_pid*
次にgit add .gitignore, git commit -am "add gitignore", git pushを実行します。
- 参考資料 ========
- Git GUIの使用方法
- 命令ベースのGitチュートリアル
- EGitプラグインの詳細な使用方法
- Git使用上の注意点 =============
- 行末文字列の自動変換問題(CRLF, LF)
- 認証エラーの修正方法
- Windows版Gitの文字コード問題の対策