ラベル Git の投稿を表示しています。 すべての投稿を表示
ラベル Git の投稿を表示しています。 すべての投稿を表示

2023年9月6日水曜日

git rebase の私の理解

厳密に正しい表現かはわかりませんが、私は

git rebase [新しく下敷きにするブランチ] [その上に載せるブランチ]

と理解してます。

例えば git rebase main topic とすると、topicブランチのベース(分岐元)を、(現時点の)mainに差し替えられる。

古い時点のコミットEから分岐していたブランチが、

      A---B---C topic
     /
D---E---F---G main

現時点のmainの最新から分岐するようになる感じ。↓

              A'--B'--C' topic
             /
D---E---F---G main

図はこちらのドキュメントから:
https://git-scm.com/docs/git-rebase

2019年10月15日火曜日

Git Bash の起動ディレクトリのカスタマイズと「Git Bash Here」メニューを両立させる

実現したいこと

Git Bash を起動したときにデフォルトで表示されるディレクトリを変更したい時、 .bashrc や .bash_profile ファイルに cd $HOME/other_directory のようなコマンドを追記して設定すると、Windowsのエクスプローラーから右クリック>「Git Bash Here」 のメニューから起動した時でもこのコマンドが実行されてしまい、常に .bashrc や .bash_profile で指定したディレクトリから起動されてしまう。

ショートカット/スタートメニューから起動したときには指定のディレクトリ、「Git Bash Here」から起動した時にはそのディレクトリから起動されるようにしたい。

解決策

Windowsのショートカットのプロパティで設定する。

2018年8月29日水曜日

Submile Text 3 から Git Bash を起動する設定

特に難しいことは無かったのですが、「難しいことはなかった」と書き残しておかないと忘れると思ったので(笑)

  1. Package Control: Install PackageからTerminalをインストール
  2. Preferences > Package Settings > Terminal > Settings - Userに、下記を追加して保存

{
 "terminal": "C:/Gitのパス/Git/git-bash.exe"
}

あとは、左側のサイドバーから起動したいフォルダを右クリック > Open Terminal Here...で、目的のフォルダに移動した状態でGit Bashを開けます。
動作も特に重いとかなく。

※パスの区切り文字は\では下記のエラーが出てしまい、/にすると通りました。
Error trying to parse settings: Invalid escape in Packages\User\Terminal.sublime-settings:2:14

2018年3月23日金曜日

GitHubへのpush時に "Your push would publish a private email address." エラー

cloud9からGitHubに push しようとしたらこんなエラーに遭遇しました。

remote: error: GH007: Your push would publish a private email address.
remote: You can make your email public or disable this protection by visiting:
remote: http://github.com/settings/emails
To https://github.com/*****/*****.git
 ! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'https://github.com/*****/*****.git'

「このまま push すると private のメールアドレスが公開されちゃうけど良いの?
そのメールアドレスを public に変更するかこのエラーを出す設定をオフにしてね!」的なエラーメッセージ。

GitHubのこの画面の設定のことを言っているようです。

public にしたくないアドレスだし今後もこのエラーは出し続けてほしいので、
現在のメールアドレス設定を確認。

$ git config --global user.email

すると、以前ちゃんと変えたつもりがまた公開したくないアドレスになっている。
cloud9 の workspace を変えるともとに戻ってしまう様子?これはどの設定のメールアドレスから引っ張ってきてるのかあとで確認しよう…

ダミーのアドレスに設定

$ git config --global user.email "*****@users.noreply.github.com"

メールアドレスは commit 時に記録されているようで、このまま再push しても同じエラーが出ました。なので一旦 commit を取り消します。

ワークディレクトリの内容はそのままでコミットだけを取り消し

$ git reset --soft HEAD^^

これで add された状態にもどりましたが、ちょっと add からやり直したい事情が出てきたので(コミットを分けたかった)

$ git reset HEAD

で一旦 add も取り消し。
で、 add→commit をやり直すと問題なく push できました。
git log のメールアドレスもちゃんと変わっていることを確認。

参考:
GitHub でダミーのメールアドレスを使用する
https://qiita.com/sta/items/982ab68e8220a81d485c

[Git]コミットの取り消し、打ち消し、上書き
https://qiita.com/shuntaro_tamura/items/06281261d893acf049ed

git の add を取り消す
https://qiita.com/nabezokodaikon/items/7ee4900d28d8d863978e

※ちなみに一番最初のコミットは取り消し方が異なる。

$ git update-ref -d HEAD

参考:
初回のコミットを取り消したいときにはgit update-refを使う
https://suzuken.hatenablog.jp/entry/2014/03/28/100311