Tag: git

目次

関連情報

使い始め

ローカルリポジトリの作成

  • プロジェクトディレクトリでローカルリポジトリを作成してコミットする
    $ cd <PROJECT_HOME>
    $ git init
    $ git add .
    $ git commit -a -m "first commit"
    

リモートリポジトリの作成

  • /home/repository/sample.gitディレクトリに空のリポジトリを作成する。
    $ mkdir -p /home/repository/sample.git
    $ cd /home/repository/sample.git
    $ git --bare init
    
  • オリジナルワークツリーの内容をpush
    $ cd <PROJECT_HOME>
    $ git remote add origin /pub/repository/sample.git master
    $ git push origin master
    
  • 二カ所目でclone
    $ git clone firstmac:/pub/repository/sample.git
    

編集→コミットまでの流れ

  • ファイル編集
  • 新規ファイルがある場合はgit add .
  • git commit -a

戻したい

  • gitでアレを元に戻す108の方法 - TIM Labs
  • 基本的にgit resetを使う。resetの引数はsoft、mixed(デフォルト)、hardがありそれぞれ異なる。
    • soft: ワークツリー、インデックスそのまま。
    • mixed: ワークツリーそのまま、インデックスは取り消す。
    • hard: ワークツリー、インデックスを変更。
  • すなわちcommit直後にresetを実行する場合、"git reset HEAD^"が基本形で、インデックスやワークツリーをどうするかで引数を使い分ければ良い。例えばaddを取り消したい時はインデックスも取り消したいのでmixed(引数なし)にするとか。

最後にcommitした状態にもどしたい

  • checkoutした状態に戻したい場合など
    git reset --hard HEAD
  • ゴミがある場合(gitで管理していないファイルが追加されてた場合)。
    git clean -df

commitしたときに余計なファイルやフォルダを追加したことに気がついたので戻したい

  • ワークスペースの状態だけ保ちインデックスやコミットを戻す。
    git reset HEAD^

過去のcommitに戻したい

  • 以前のcommitに戻したい場合、git logなどでハッシュ値を確認して。
    git reset --hard xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • これだけだと新規追加したファイルが残るのでuntracked filesを削除する場合、以下のコマンドも実行。Git clean | アトラシアン Git チュートリアル
    git clean -df

途中のcommitをなかったことにしたい

履歴を確認したい

diffを確認したい

  • "-p"オプションを使う
    git log -p README.md

コンフリクトの解消

git pullでコンフリクトしたときの対処法

参考情報

前回git pullした状態に戻す

  • 一回もローカルリポジトリにcommitしてない場合
    git reset HEAD
  • ローカルファイルに変更があってそれもなくす場合
    git reset --hard HEAD
  • 一回コミットしていた場合は、HEADの場合にHEAD^を使えばよい。

git logなどして確認する。

git rebaseでコンフリクトしたときの対処法

  • developブランチでmasterをrebaseしようとしたときにコンフリクトした場合
    git checkout develop
    git rebase master
  • テキストファイルの場合衝突したファイルを修正。バイナリファイルの場合、
    git checkout --ours  demo.txt(この場合develop側を使う)
    git checkout --theirs demo.txt(この場合master側を使う)
  • その後
    git add demo.txt
    git rebase --continue

ブランチ

全部ランチをpush

  • 通常masterブランチをpushするが場合によってはfeatureブランチなど全部をpushしたい場合もある。
    git push -u origin --all

ブランチを同期する

ベンダーブランチの管理

Gitで管理されていない上流ソースの管理

Gitで管理されているソースの管理

その他Tips

サブモジュールを使う

空フォルダを管理する

  • フォルダに空の.gitignoreファイルを置く。

Subversionからの移行

PC/デスクトップで作業を同期


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-18 (火) 13:47:16