git
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| git [2022/07/11 10:53] – [差分の確認(git diff)] nullpon | git [2022/07/13 12:08] (現在) – [ブランチ作る場所間違った] 削除 nullpon | ||
|---|---|---|---|
| 行 5: | 行 5: | ||
| ===== インストール ===== | ===== インストール ===== | ||
| ==== Debian系 ==== | ==== Debian系 ==== | ||
| - | sudo aptitude | + | sudo apt install git |
| ==== MacOSX ==== | ==== MacOSX ==== | ||
| 行 13: | 行 13: | ||
| またはbrewで | またはbrewで | ||
| brew install git | brew install git | ||
| - | ===== 個人でバージョン管理 | + | ===== 基本的な使い方 |
| - | GitはSVNのようにサーバ上のリポジトリを必要としない。ワーキングディレクトリがGitのリポジトリになる。 | + | |
| + | gitリポジトリを作成 | ||
| + | |||
| + | mkdir my_project | ||
| cd my_project | cd my_project | ||
| git init | git init | ||
| - | コミット対象(ステージ)に追加 | + | 変更したファイルをコミット時の状態に戻す |
| - | git add ファイルorディレクトリのパス | + | |
| + | git restore < | ||
| + | |||
| + | ステージ(コミット対象)に追加 | ||
| + | |||
| + | git add < | ||
| ステージに追加したファイルをステージから外す | ステージに追加したファイルをステージから外す | ||
| - | git reset HEAD ファイルorディレクトリのパス | ||
| - | コミット | + | git restore --staged < |
| + | |||
| + | ステージに追加したファイルをコミット | ||
| git commit | git commit | ||
| | | ||
| - | 変更されたファイルを全部対象にしてコミット(新しく作成したファイルは対象にならないので個別にadd) | + | 変更したファイルをステージに上げずに直接コミット(新規ファイルは直接コミットできない) |
| git commit -a | git commit -a | ||
| - | + | ||
| - | 最後にコミットしたバージョンに戻す(svnのrevert) | + | |
| - | git checkout ファイルorディレクトリのパス | + | |
| ===== config ===== | ===== config ===== | ||
| 行 75: | 行 83: | ||
| と書ける。 | と書ける。 | ||
| - | ===== リポジトリの公開 ===== | ||
| - | サーバ上に公開リポジトリを設置する。 | ||
| - | |||
| - | サーバ上の / | ||
| - | $ git --bare init | ||
| - | |||
| - | hoge.gitが公開ディレクトリとなる。bareリポジトリはワーキングディレクトリとして使えない。 | ||
| - | |||
| - | 現在作業中のリポジトリからbareリポジトリを作成する場合は、以下のようにクローンを作成。 | ||
| - | $ git --bare clone project project.git | ||
| - | |||
| - | 作成したbareリポジトリをサーバに設置し、以下のコマンドを実行 | ||
| - | $ git update-server-info | ||
| - | | ||
| - | Webサーバ上の公開リポジトリからcloneやpullできる。 | ||
| - | $ git clone http:// | ||
| - | |||
| - | pushしたいならssh経由でクローンするのが楽。 | ||
| - | $ git clone ssh:// | ||
| - | |||
| - | pushされた内容はpushしただけではbareリポジトリに反映されない。pushする度にupdate-server-infoする必要がある。これをpush時に自動で実行するにはhoge.git/ | ||
| ===== push ===== | ===== push ===== | ||
| 行 278: | 行 265: | ||
| $ git log --committer=nullpon | $ git log --committer=nullpon | ||
| - | ===== コミットを並び替える ===== | ||
| - | |||
| - | $ git rebase -i HEAD~3 | ||
| - | | ||
| - | こんな画面が出てくる、 | ||
| - | |||
| - | pick xxxxxxxx コミット1 | ||
| - | pick xxxxxxxx コミット2 | ||
| - | pick xxxxxxxx コミット3 | ||
| - | | ||
| - | コミット1が古い方。 | ||
| - | |||
| - | pick xxxxxxxx コミット1 | ||
| - | pick xxxxxxxx コミット3 | ||
| - | pick xxxxxxxx コミット2 | ||
| - | |||
| - | コミット2と3を入れ替えて保存。 | ||
| - | |||
| - | ===== 複数のコミットをまとめる ===== | ||
| - | たとえば3つ前までのコミットを1つにまとめる(まとめる、というよりも新しいコミットを古いコミットに含めるというのが正しい) | ||
| - | |||
| - | $ git rebase -i HEAD~3 | ||
| - | | ||
| - | こんな画面が出てくる | ||
| - | |||
| - | pick xxxxxxxx コミット1 | ||
| - | pick xxxxxxxx コミット2 | ||
| - | pick xxxxxxxx コミット3 | ||
| - | | ||
| - | コミット1が古い方。 | ||
| - | |||
| - | pick xxxxxxxx コミット1 | ||
| - | s xxxxxxxx コミット2 | ||
| - | s xxxxxxxx コミット3 | ||
| - | | ||
| - | コメント修正画面が出てくるので、適当にコメントを直して保存するとまとまる。止めたいときはコメント全部消して終了し、git rebase --abort | ||
| - | ===== ブランチ作る場所間違った ===== | ||
| - | hotfix/aaa からブランチを作るべきなのに master から作ってコミットしまった… | ||
| - | git rebase --onto hotfix/aaa master | ||
| - | ===== 特定のファイルを過去の時点に戻す ====` | + | ===== 特定のファイルを過去の時点に戻す ===== |
| `restore -s`を使う | `restore -s`を使う | ||
git.1657536782.txt.gz · 最終更新: by nullpon