GitLab メモ2020年12月20日 | |
はじめにGitLab の使い方メモ。 環境macOS 10.14.6 SSH 接続の準備ターミナルで鍵を作る。 $ mkdir ~/.ssh $ cd ~/.ssh $ ssh-keygen -t rsa -f gitlab_rsa -C <メールアドレス> GitLab にて、ユーザーの [Settings]-[SSH Keys] を選ぶ。gitlab_rsa.pub の中身をコピペして [Add key]。 ~/.ssh/config を用意。
Host gitlab.com
HostName gitlab.com
User <ユーザー名>
IdentityFile ~/.ssh/gitlab_rsa
ユーザー情報の設定以下のようにすると git の各種設定を確認できる。 $ git config --local --list ユーザー情報は以下のように設定する。 $ git config --local user.name <ユーザー名> $ git config --local user.email <メールアドレス> 次のようにすれば、エディタで編集できる。 $ git config --local --edit ~/.gitconfig に以下のように書いておく手もある。
[user]
name = <ユーザー名>
email = <メールアドレス>
クローンからマージリクエストまでクローンしたいページで [Clone] をクリックし、"Clone with SSH" をコピー。作業ディレクトリに移動し、"git clone" を実行。 $ git clone <コピーしたアドレス> ブランチを GitLab で作成。ここではブランチ名を "patch-1" とする。ブランチを選択。 $ git checkout patch-1 $ git branch master * patch-1 ファイルを編集。編集したファイルを "file.txt" とする。変更ファイルを追加。 $ git add file.txt コミット。 $ git commit -m "コメント" プッシュ。これでブランチ "patch-1" に修正が反映される。 $ git push origin patch-1 GitLab でブランチのところでマージリクエストを作る。 コミットの前の確認"git diff" で変更の確認ができる。 $ git diff Shift-JIS の日本語テキストの場合などに文字化けするときは、nkf に渡してやればよい。 $ git diff | nkf -w 変更状況を確認するには、以下のようにする。 $ git status どのファイルを変更してどのファイルを追加したかなどがわかる。 変更ファイルの追加変更ファイルは "git add" でひとつずつファイルを指定するが、以下のようにすれば変更ファイルをすべて追加することもできる。 $ git add . コミットのログの表示$ git log コミットの修正コミットのコメントの修正直前のコミットのコメントを修正するには、次のようにする。 $ git commit --amend -m "コメント" Autrhor/Comiiter の修正コミット直後であれば、"git config" でユーザー情報を設定したあと、以下のようにすればよい。 $ git commit --amend --reset-author コメントの編集のためにエディタが起動するが、すぐ閉じればよい。 変更の取り込みリモートの変更をローカルに取り込むには、master にチェックアウトして、次のようにする。 $ git pull origin master あるいは、他のブランチも取り込むなら、次のようにする。 $ git pull origin 作業中のブランチよりも master のほうが新しくなってしまった場合は、master を "git pull" で更新したあと、ブランチにチェックアウトして、master をマージする。 $ git merge master あるいは、ブランチにチェックアウトした状態で "git pull origin master" すると、自動的にマージされる。master のほうは更新されないので、別途更新する。 master はマージされているがブランチの最新版になっていない場合は、次のようにすればよい。 $ git pull origin <ブランチ名> ブランチのマージに失敗する場合コンフリクトが起こってブランチのマージに失敗する場合は、一旦ブランチに master をマージする。"git status" でコンフリクトしたファイルを確認できる。コンフリクトの箇所にコメントが挿入されるので、それを修正してコミットする。修正がすべて済んだら、マージできるようになっているはず。 とりあえずマージをやめたい場合は、"git merge --abort" とすればよい。 マージ済みのブランチの削除マージリクエストの結果マージされた (ローカルの) ブランチ "patch-1" を削除する。 $ git branch -d patch-1 GitLab でマージリクエストしてマージ後に自動でブランチを削除させた場合、リモートブランチの情報が残ることがある。リモートブランチの情報は "git branch" の "-r" オプションで表示できる。 $ git branch -r remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/patch-1 以下のコマンドを実行して、ブランチに "stale" と表示されていれば、リモートでは消えている。
$ git remote show origin
* remote origin
...
Remote branches:
master tracked
refs/remotes/origin/patch-1 stale (use 'git remote prune' to remove)
この場合、(上のコメントにあるように) 以下のコマンドで削除できる。 $ git remote prune origin Pruning origin URL: git@gitlab.com:xxxx/xxxx.git * [pruned] origin/patch-1 やりなおしadd していないファイルを元に戻す$ git checkout <ファイル> add したファイルを元に戻す$ git reset コミットも含めて変更をなしにして最新の状態に戻す$ git reset HEAD^ $ git checkout . $ git pull origin master 変更を直前のコミットに追加するコミットしたあとに変更忘れに気がついた場合、変更後に以下のようにすれば変更を直前のコミットに追加できる。 $ git --amend コメント編集のためにエディタが起動するが、すぐ閉じればよい。 push を取り消すたとえば、作業ブランチを間違えて作業して push したあとに間違いに気づいてしまった場合などに、強引に取り消す方法。 $ git reset HEAD^ $ git push -f origin patch-1 | |
| PENGUINITIS | |