Githubの使い方覚書です。
目次
- 1 Githubでリモートリポジトリのファイルを削除(ターミナル)
- 2 gitのルートディレクトリーの変更
- 2.1 gitのルートディレクトリーを親階層に変更
- 2.2 githubのリポジトリの複数運用
- 2.3 githubにおけるブランチをマージ
- 2.4 Please commit your changes or stash them before you merge.Aborting
- 2.5 gitのコマンドラインのブランチをマージ
- 2.6 Please commit your changes or stash them before you switch branches.
- 2.7 ブラウザ上からgithubのファイルを消す(小文字を大文字に変換後トラブル)
- 2.8 githubの日付
- 2.9 githubのリポジトリの検索
- 2.10 githubの正規表現の検索
- 2.11 ファイル名変更時にgithubの履歴をキープする
- 3 gitの本や動画
Githubでリモートリポジトリのファイルを削除(ターミナル)
うっかりとGitHubにプッシュしてしまったけど、リポジトリから外したくなりました。
.gitignore
にファイルを追加
git rm --cached 削除したいファイル
- 変更を push
順番は入れ替えても問題ないはずです。
githubのリモートリポジトリの削除(Github上)
github上でいらないリモートリポジトリは削除します。
Settings > Danger Zoneの[ Delete this repository ] > ユーザ名+リポジトリ名をタイプして[I understand the conequences, delete this repository]
gitのルートディレクトリーの変更
dev/..中略../project/applebook/
から
ebook/..中略../project/applebook/
に変更したい。PCで普通に名前を変えるだけでOKです。
- gitより上階層のフォルダの場所を変更しても問題なし
- gitはプロジェクトのルート以下しか監視していないから(相対パスみたいな)
git管理下は次のような変更が必要。
git mv applebook orangebook
gitのルートディレクトリーを親階層に変更
project
|-- project/
| |-- .git/
|-- export/
↓
project
|-- .git/
|-- work/
|-- export/
- VsCodeで親階層を開く
- 次のコマンド。
cd project
mv .git ../
念の為エクスプローラやfinderで変更を確認します。.gitは隠しファイルなので表示が必要です。
フォルダ名の変更もあわせて行ってコミットしなおす。
githubのリポジトリの複数運用
リポジトリを切り替えてpushするという発想はやめた方がいいかもしれません。混乱します。
新しいプロジェクトのリポジトリを作る形で運用します。外注さんの〇〇プログラムのリポジトリを作成し、必要ならローカルでコピペで受け渡してメインのリポジトリに組み込みます。情報漏洩の懸念があるときだけに留め、基本は仲間うちで1つのリポジトリで運用するとよいでしょう。
githubにおけるブランチをマージ
github上でプルリクエストをマージする流れです。
最後にローカルリポジトリにも反映させます。
git pull origin master
Please commit your changes or stash them before you merge.Aborting
Please commit your changes or stash them before you merge.Aborting
gitのコマンドラインのブランチをマージ
github上でやる方法が簡単ですので上記の方法をおすすめしますが、一応書いておきます。
共同開発で誰かがブランチをあげてくれたとしましょう。いずれのコマンドでブランチの状況を確認しましょう。
ローカル&リモートブランチ一覧を表示します。
git branch -a
*印が付いているものが現在のブランチ です。なお、誰かがプルリクエストしてくれた場合、このコマンドを実行しても、最初含まれていません。fetchが必要です。
余談ですが、リモートブランチ一覧を表示するコマンドです。
git branch -r
fetchすると、github上のプルリクエストがVS Code上でみれます。
git fetch
個別に指定したい場合は次のとおりです。IDはgithubの#以降の数字です。BRANCHNAMEはなんでもOKの任意の名前です。
git fetch origin pull/ID/head:BRANCHNAME
再度、次のコマンドを実行すると見れるようになっているはず。
git branch -a
図説すると以下のようになります。
git fetchは、リモートのmasterからローカルのorigin/masterに。
git mergeは、ローカルのorigin/masterからローカルのmasterに。
fetchとmargeとあわせたものが、git pullです。fetchではコンフリクトはおこりません。
ローカルファイルがある場合、チェックアウトしてmargeする流れになります。
git checkout project
fetchせず、ローカルファイルがない場合は、次のようになります。
git checkout -b project origin/project
最後にマージします。
git checkout project
まとめてやるなら、pullを使いましょう
git pull origin master
vs codeのGit Historyを使う場合は次の手順のようです。
- Git History(View > コマンドパレット > Git: View History (git log))を開きます
- masterブランチにチェックアウト(選択)
- 画面右のMove > Merge this commit into current branch
Please commit your changes or stash them before you switch branches.
ローカルで作業しているとき、別の開発者からあがってきたブランチをマージしたいときがあります。そんなときに便利なのがstachのコマンドです。
margeしようとしても、以下のエラーがでます。
error: Your local changes to the following files would be overwritten by checkout:
nuxt.config.js
Please commit your changes or stash them before you switch branches.
Aborting
stashとは隠しておくという意味です。
まず、このコマンドを実行します。
git stash // saveは省略できます。 git stash save
次のはただの確認コマンドです。
git stash list
pullします。
git pull origin master
あるいはgit fetchした場合はリポジトリ名です。
git marge リポジトリ名
ここまで実行すると、リモートにあった情報に更新されてローカル作業の情報が消えています。
次のコマンドを実行するとマージされて元に戻ります。
git stash pop
最新のスタッシュを適用し、スタッシュを削除する場合はpopを使ってください。個人的にはpop派です。
git stash apply
最新のスタッシュを適用し、スタッシュを残す場合はapplyを使ってください。
ブラウザ上からgithubのファイルを消す(小文字を大文字に変換後トラブル)
github上にだけに古いファイルが残ってしまったことがありました。小文字を大文字に変えてコミットしたときです。
github上から消せます。手順は以下のとおり。
- 消したいファイルを選ぶ
- 画面右上のゴミ箱アイコンをクリック
にコメントを書いて
Commit directly to the master branch
ブランチを分けたいわけではないため、チェックをいれたまま
Commit changes
クリックします。
以上で削除されます。
githubの日付
日付はどうやらaddしたタイミングのようです。pushではありません。
githubのリポジトリの検索
他人のソースコードを見たいときもあるでしょう。
該当するリポジトリを開いて検索するだけです。ただし、検索する際に、[ In this repository ]を押します。
githubの正規表現の検索
ただ、ニュースなどによると全リポジトリは検索できないみたいです。素晴らしいサイトです。
ファイル名変更時にgithubの履歴をキープする
Vs Codeで直接書き換える方法はダメなようです。ファイルがある場所でgit mvです。
cd フォルダ名 git mv a.vue b.vue
Vs Codeは変更時にgit addした状態になるため、pushすればOKっぽいです。
昔のファイルはgit log –followで確認するか、githubの履歴ページでUrlの末尾を昔のファイル名に書き換える必要があります。新しいファイルに履歴が移行するわけではないので、ちょっとめんどい。。あまり確認することがないため、これで一応、よしとします。
Githubでファイルを開き、[Blame]でもいけるようです。こちらの方が簡単ですかね。
gitの本や動画
長くなったためこちらの記事にまとめなおしました。
コメント