今さら聞けないGit 2021年03月24日

今さら聞けないGit 2021年03月24日
目次

GitLabのプロジェクト名・グループ名をURLごと変更し、localとも連携する

プロトタイプで作っていたサービスで、正式にサービス名とドメインが決定したのでプロジェクト名とグループ名を変更し、URLも合わせて変更したい。
新たにチームに加わったり保守してくれる人が違和感の無いように。

新たにリポジトリを作り直してもいいんだけども。

### GitLabのプロジェクト名を変更する。
プロジェクトTOP > Settings > General で Project name を変更する。
これだけではURLは変わらないので、
プロジェクトTOP > Settings > General > Advanced で Change path を変更。

ここで、グループ名も変えねばと気づく。

### GitLabのグループ名を変更する。

グループTOPから、プロジェクト名と同様に変更する。

### ローカルと連携

これで、新たにcloneすると新しいプロジェクト名、URLが反映される。
既存のディレクトリとgitのローカルリポジトリがある場合は、ディレクトリ名とremoteのURLを変えておいたほうが良い。

“`
# 既存のリモートリポジトリを確認。
$

元記事を表示

Gitでやりかけの状態をコミットログを汚さずに他の人に共有する

## 背景
ペアプロやモブプロをやっていると、変更が中途半端でそのままコミットしたくないようなタイミングでもドライバーを変更することがあります。リモートペアプロなどソースを編集する環境が別環境の場合だと変更を共有するためには一度リポジトリを経由する必要がありますが、中途半端な変更をコミットしてしまうとコミットログが汚れてしまいます。`git stash`の退避内容を共有できたらいいのですが、stashにそんな機能は無いですし。

というわけで、コミットログを汚さずにやりかけの状態を他人へ渡すための、私なりに考えた方法を書きます。
※もっといいやり方がありましたらコメントで教えてください!

## 手順
AさんのやりかけをBさんに渡す場合、以下の手順で渡します。

### Aさん(やりかけを渡す人)の手順
“` bash
# (1) 変更内容を退避する
$ git stash save

# (2) 捨てブランチを作成し、ブランチを切り替える
$ git checkout -b tmp-yarikake

# (3) 退避した変更を、捨てブランチにcommit&pushする
$ git

元記事を表示

git mv で expressアプリケーションのディレクトリを移動しようとしたらpermission deniedでつまづいた話

## 問題
expressアプリケーションのディレクトリ構成を変更するため、
`git mv`でディレクトリを移動しようしたが
`permission denied`により移動できなかった。
パーミッションを確認したが問題はなかった。

## 解決方法
node_modulesを含むディレクトリを`git mv`で移動しようとすると
`permission denied`エラーになるため、
一度node_modulesを削除してから`git mv`で移動する。
最後に`yarn install`でnode_modulesを復元する。

## くわしく

“`
.
├── express_nextjs
│ └── app
│ ├── express
│ │ ├── node_modules
│ │ └── その他
│ └── Dockerfile

└── その他
“`

“`
.
├─ app
│ ├── express
│ │ ├── node_modules
│ │

元記事を表示

Source tree リポジトリへpushしたブランチを削除方法

1.削除したいブランチの一層前のブランチへ切り替える
2.左画面からのブランチ名を右クリックで削除する
3.リモートのタグの中からリポジトリ上である該当なブランチ名を右クリックで削除する
終了

元記事を表示

Git stash スタッシュされた内容をすべて消す

# 目的

– `$ git stash`でキープされている作業内容をすべて消す方法をメモ的にまとめる

# 方法

– 下記リポジトリ無いでコマンドを実行する。

“`terminal
$ git stash clear
“`

元記事を表示

【Git】git addの取り消し方法

#プログラミング勉強日記
2021年3月23日

#git addの取り消し方法

##ファイル・ディレクトリを指定して取り消す

“`:addの取り消し方法
$ git reset HEAD ファイル名/ディレクトリ名
“`

##addしたすべてのファイル・ディレクトリを取り消す方法

“`:addしたときに追加されるすべてのファイルを取り消す
$ git reset HEAD .
“`

##一番最初のaddを取り消す方法
一番最初に実行したgit addを取り消したい場合は、HEADの参照がないので`git rest`が使えない。なので、以下の方法で行う。

“`
$ git rm –cached ファイル名・ディレクトリ
“`

“`:ディレクトリ内のすべてのaddを取り消す
$ git rm –cached -r ディレクトリ名
“`

<注意>
`git rm 〇〇`でキャッシュを付け忘れると、どこにも保存していないファイル自体を消してしまう。なので、`–cached`オプションを必ず付ける。

#参考文献
[git add の取り消

元記事を表示

git checkout コマンドを省略する

#rails tutorialで学習時に
学習を進めると git checkout のコマンドが頻繁に出るようになり、省略できないかと探してたらrails tutorial冒頭にありました

“`:terminal
$ git config –global alias.co checkout #checkoutのエイリアス(あだ名)をcoに変更する
“`
こういう小さいことでも効率化をするのが大事

#参考にしたもの
https://railstutorial.jp/chapters/beginning?version=6.0#sec-what_good_does_git_do_you

元記事を表示

Githubのssh keyを追加した時「Error: Key already in use」となった場合の対処法

#ssh keyが別のアカウントで使われてる??
[permission deniedでgit clone 出来ない問題は、大体SSHがGitHubに登録されていないから](https://qiita.com/kokogento/items/35d0ff204ce58312a2e0)
:point_up:こちらの記事を参考に、ssh keyをGithubに追加しようとすると、**まさかのエラー!!**
![スクリーンショット 2021-03-22 22.00.48.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/4a6cd0d4-d2de-8b42-2b8e-1c1df3d0974f.jpeg)

**既に使われてるって、どゆことだ???**

#どのアカウントで使われてるか確認する
https://docs.github.com/en/github/authenticating-to-github/error-key-already-in-use#finding-where-the-key

元記事を表示

【Git】HEADとは何か

#プログラミング勉強日記
2021年3月22日

#HEADとは
 現在のブランチの最後のコミットの代名詞のこと。現在使用しているブランチの先頭を表す。デフォルトではmasterの先頭を表していて、HEADが移動することで使用するブランチが変更される。

#HEADの使い方
 コミットを指定するときに`~`(チルダ)と`^`(キャレット)を使って、あるコミットからの相対位置で指定することもできる。`~`を後ろに書くと行くつ前の親かを指定することができ、`^`はブランチのマージがオヤッが複数ある場合に何番目の親化を指定できる。

“`:最後にコミットした内容を見る方法
$ git show HEAD
“`

“`:最後の1つ前のコミットを見る方法
$ git show HEAD^
“`

“`:最後の2つ前のコミットを見る方法
$ git show HEAD^^
$ git show HEAD~2
“`

#参考文献
[Git初心者に捧ぐ!Gitの「これなんで?」を解説します。](https://kray.jp/blog/git-why-explanation/)
[ブラ

元記事を表示

Git cherry-pickを実行する 個人メモ

# 目的

– cherry-pickの実行方法をまとめる

# 方法

– コミットを取り込みたいブランチに移動して下記コマンドを実行する。

“`terminal
$ git cherry-pick 取り込みたいコミットID
“`

元記事を表示

Gitインストール手順(Windows10)

#注意事項
今回インストールするのは、バージョン2.31.0です。
バージョンが上がったりすることでインストール手順が異なってくる可能性があるのでご注意ください。
#①Gitのインストーラーをダウンロード
[ダウンロードサイト](https://git-scm.com/)から**Download 2.31.0 for Windows** をクリックし、ファイルをダウンロードする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045926/29d19e49-ab47-f12c-2a57-512ec2e68ab4.png)
#②ダウンロードした「Git-2.31.0-64-bit.exe」を実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045926/c03d36f2-f38c-b3cb-642d-3a8b5117a646.png)
#③ライセンスの確認
特に問題がなければ、[Nex

元記事を表示

必要のないgit branchをまとめて消す

今いるbranch以外を削除

“`sh
git branch | grep -Ev “\*” | xargs git branch -D
“`

`”\*”` の部分は正規表現なのでよしなに変えて好きな分だけまとめてけせる

今いるbranchとmaster以外を削除

“`sh
git branch | grep -Ev “\*|master” | xargs git branch -D
“`

何が消されるのか不安な場合は一旦`xargs`までパイプせずに一覧を一度確認してから消すと良い

手順 e.g.

“`sh
$ git branch | grep -Ev “\*|master”
feature/hoge
feature/piyo
feature/fuga
feature/foo
release/1.1.5
release/1.1.6
hotfix/bar
$ git branch | grep -Ev “\*|master” | xargs git branch -D
Deleted branch feature/hoge (was

元記事を表示

Githubに保存したHTMLテンプレートを開発ごとにcloneして複製利用したい

## やりたいこと

ウェブサイトを制作するとき、毎回ファイルを一から準備するのは面倒です。

そこで、githubにHTMLテンプレートのリポジトリを作っておき、プロジェクトのごとにgit cloneして新しいリモートリポジトリに複製利用できたら便利だなと思ったのでメモします。

なお、エディタはVSCodeを使用しています。

## 手順

大まかな流れです。

![名称未設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183668/8610939a-a857-520c-d348-f515ff131f6a.png)

1. HTMLテンプレートリポジトリを準備
2. git cloneでローカルにコピー
3. Githubに新規プロジェクトリポジトリを作り、URLをコピー
4. git remote set-url originでローカルにコピーしたリポジトリのremote URLを変更
5. 新規プロジェクトリポジトリにpush

↓↓↓

githubにHTMLテンプレートリポジトリを準備し

元記事を表示

【Git】Changes not staged for commit:とエラーが出たときの対処法

gitでmasterブランチで直接編集した内容をcommitしようとしたとき下記のように怒られました。

“`terminal:masterのuser_test.rbをcommitしようとした
git commit -m “Fix test”
On branch master
Your branch is up to date with ‘origin/master’.

Changes not staged for commit:
modified: test/models/user_test.rb

no changes added to commit
“`

Changes not staged for commitを直訳すると「コミットのためにステージングされていない変更」になります。

最後の行は「no changes added to commit」は「コミットするために追加された変更はありません」という意味でした。

変更したものがコミットされていないと言われています。

解決策

エラーの内容通り、Addをし

元記事を表示

【M1 BigSur】JenkinsからGit(LFS)のチェックアウトからUnityへのビルドまで(Github)

# 概要

Mac Book Air (M1 2020)
macOS Big Sur 11.2.2

[【M1 BigSur】Jenkins導入編](https://qiita.com/im0039kp/items/2dec89d805c4383de2e0)
こちらで書かせたいただいた記事の続きです。
この記事を残しておきたかったのでついでにJenkins導入を書いた次第です。
JenkinsからGitでチェックアウトができればいいので別にUnityでなくてもいいですが今回は確認のために利用しています。

一連の流れを記事にしましたが割と困るのが
BigSurでの`git-lfs filter-process: git-lfs: command not found`エラーの回避方法だと思います。

# 準備

### Github

Githubで作成したリポジトリーを使っているのでアカウントは作成しておきましょう。

### unityのインストール

・とりあえずUnityはインストールしておいてください。
 今回は`Unity2020.3.0f1`で試しています。

### Gi

元記事を表示

Windowsユーザー必見!scoopを使ってコマンドからGit、Node、npm、PHPをダウンロードしてHomebrewを実現しよう!!

皆さんこんにちは!

今日はWinodwsでコマンドから色々ものをダウンロードして見ようかなと思います。

良く解説動画を見ると、Macで説明されている方が多くその度に“Homebrew“と言う言葉を耳にします。

残念ながらWindowsではこのHomebrewと言うものは存在しません(多分)。

ですが、Homebrewと同じような機能をもつものがWindowsにも搭載されています!

その名は**scoop**!!

これを使えば、コマンドからNodeやらGitやらをインストールすることができます。

他にもscoopを使えばバージョンの指定を行うことも可能なので、わざわざサイトからダウンロードするなんて作業にはもうさよならです。

scoopをインストールするには“PowerShell“での作業が**必須**となりますのでご注意を。

それでは早速scoopを使って色々やってみましょう!

#scoopのインストール#

もう一度言います。

**PowerShell**で行ってくださいね。

“`
Set-ExecutionPolicy RemoteSigned –

元記事を表示

Gitでsubtreeを使用して複数のリポジトリを扱う

# 概要
複数のリポジトリをまとめて管理するリポジトリを作成する。
例えば、front, backの二つのリポジトリを、mainリポジトリで管理する。

“`:ディレクトリ構成
main
├── front
└── back
“`

# 準備
以下三つのリポジトリを用意する

– main
– front
– back

# やること (mainにfrontを追加)
## 1. mainディレクトリに移動
`$cd main`

## 2. frontをリモートに追加
`$git remote add -f front git@github.com:front.git`

## 3. frontをsubtreeに追加
`$git subtree add –prefix=front front main`

prefixでディレクトリを指定、frontのmainブランチを追加する。
勝手にコミットされる。

# やること (mainにbackを追加)
mainにfrontを追加と同様

# subtreeのリポジトリの更新を取り込む
`git subtree pull –pref

元記事を表示

GitHub for Unityでコミットできない時

## 起こった現象
プロジェクトの途中でGitHub for Unityを導入したところ、Commitボタンを押しても「Staging Changes…」のまま動かず、しばらく経つとコミット自体が自動キャンセルされる。

(GitHub for Unityの導入方法は以下の記事を参考にさせていただきました。)

[【超初心者向け】Unityのプロジェクトを、GitHub for Unityを使って超簡単にバックアップする方法 \- Qiita](https://qiita.com/toRisouP/items/97c4cddcb735acde2f03)

## 解決策
結局このプロジェクト内では何をやっても直らず、新しいプロジェクトを作って移植したらうまくいきました。

**プロジェクトの最初にGitHub for Unityを導入するのがおすすめです。**

途中から入れた場合でもコミットできるようになる方法があれば、コメント頂けると幸いです。

元記事を表示

GitHub Actions内でdocker-compose execコマンド実行したときに”the input device is not a TTY”エラーが出たときの解決法

# はじめに
githubactionでdocker-compose exec コマンドを普通に利用すると

“`
the input device is not a TTY
“`
のようなエラーが発生してしまう。

今回はその解決方法を示す。

# 解決方法
docker-composeコマンドに`-T` オプションをつける!

例)

“`
$ docker-compose exec -T [docker-compose service] [コマンド]
“`

githubaction内で記述すると、こんな感じです!
“`yml:githubactionファイル
name: githubaction sample

# 省略

jobs:
build:
runs-on: ubuntu-latest
steps:
– name: Git checkout current branch #作業ブランチにchekout
uses: actions/checkout@v2
with:
ref: ${{ gith

元記事を表示

Git~add~

今回はGit addについて学習していきます。

#git addとは
そもそも、gitには、作業エリアがあります。今回大切になるのが、ステージングエリアになります。
これはファイルを一時的に置いとくエリアになります。
ここに保存しなくてはどんなに頑張ってターミナルをたたいても、リモートリポジトリにあげることはできません。
そこで使うのがgit addです。
いくつか種類があります。

#git add .
こちらは変更、削除、追加したカレントディレクトリー以下のすべてのディレクトリを追加することができます。
(カレントディレクトリーとは、現在の位置ディレクトリのことです)

#git add -u (update)
変更、削除されたファイルが追加されます。しかし、新規作成されたファイルはaddされません。

#git add -A (all)
変更、削除、追加されたファイルすべてが追加されます。

#間違えてaddしてしまった

“`
git reset HEAD ファイル名
“`

とします。

addしてアップしたあとcommitでメモを残して、Pushまでつなげます。

元記事を表示

OTHERカテゴリの最新記事