- 1. LF will be replaced by CRLFエラー
- 2. git logとは
- 3. コミット、コミット中止、コミットメッセージとは
- 4. 【Git】git pull時のNot possible to fast-forward, aborting.解消法
- 5. git rebase master を使うのは止めようと思う
- 6. git-filter-repoでフォルダー移動をするという歴史改竄をする
- 7. ssh鍵を作った後でBitbucketやGithubにssh接続する
- 8. 【Git】ローカルからリモートリポジトリのブランチが確認できない
- 9. 【自分用】GitHubを用いた開発の流れを整理する。
- 10. Git コマンド まとめ2
- 11. git log –onelineでコミットID、メッセージ、HEADをサクッと確認
- 12. 【備忘録】Git(Lab)をCUIで一週間で使えるようになるまで(単語編)
- 13. 【Dokcer】gitを使用する【Remote-Containers】
- 14. Gitコマンドあれこれ
- 15. gitignoreファイルを除外する方法メモ
- 16. 【Git】インストーラー版のGitをアンインストールする方法とは?(Mac標準のGitに戻す)
- 17. oh-my-zshでgitコマンドのaliasがあったのでここに載せておく
- 18. gitでlatex管理
- 19. 既存のフォルダをリモートリポジトリにプッシュしたかった
- 20. 【Git】自分的よく使うGitコマンド
LF will be replaced by CRLFエラー
Gitbashでデータを作成し、Addしようとしたらこのようなエラーメッセージが出てしまい、Addができない。

Gitがデータの改行コードをLFからCRLFへ自動変更しようとするようなので、解決策として
git config –global core.autoCRLF false
をしてこの機能を停止させることで解決できるようになる。以降のAddもPushも問題なし。
git logとは
# 履歴を見る
## ログを表示する
“`
git log
git log –oneline
git log ファイル名
“`
コミットの履歴を見るために使う。## 実際使ってみよう。
“`
*************@mbp training % git log
commit ************ (HEAD -> master)
Author: 設定された名前 <設定されたemail>
Date: Tue Jun 7 14:27:10 2022 +0900this is test commit.
commit **********************
Author: ********* <**************::>
Date: Wed Jun 1 12:08:46 2022 +0900練習用アプリを作成 rails new -B -T -J -d mysql -C .
“`
## 思ったこと
すごい。
設定した名前、email、日付、コミットメッセージが表示されるのか。## git log –oneline
ひと
コミット、コミット中止、コミットメッセージとは
# 現在の状態を一つのコミットとしてリポジトリに入れる
## ファイルをステージする
コミットするときは作業ツリーの状態をステージに作る。
(変更内容を)
ステージされたらコミットする。前回は
“`
git add README
“`
このようにファイル名を指定してステージした。
しかし一つ一つするのはめんどくさい。
なので
作業ツリーから全部のファイルをステージするコマンドがある。
“`
git add -u
“`
# ステージ内容をコミットする
“`
git commit
“`
ステージの状態からコミットが作られてリポジトリに入る。# コミットの中止
コミットメッセージの全ての行を消して保存してエディタを終了すると、“`git commit“`は中止と判断してコミットを取りやめてくれる。
## 思ったこと
コミットメッセージを全て消せば中止し、エディタを終了すると中止になるんだ。
gitでvimを使うんだな。# コミットのハッシュ
コミットを識別するためにIDが使われている。
それに使われているのがハッシュ関数だ。
コミットされた後ハッシュ関数のIDの先頭7
【Git】git pull時のNot possible to fast-forward, aborting.解消法
## 状況
`git pull`を実行した際に以下のように出力され、`git pull`を正常に実行できませんでした。“`:ターミナル
$ git pl origin main
From github.com:UserName/sample-app
* branch main -> FETCH_HEAD
fatal: Not possible to fast-forward, aborting.
“`
`git pull`を実行する前にローカルリポジトリをhennsyuusi,`commit`したことが原因のようです。## 解消法
以下のように実行することで解消しました。
“`:ターミナル
$ git pull –rebase origin main
“`
上記のコマンドを実行することで`git fetch` + `git rebase`が実行されます。`git pull`と`git pull –rebase`の違いについては以下のページをご参照ください。
https://kray.jp/blog/git-pull-reba
git rebase master を使うのは止めようと思う
## 注意:この記事を参考にして何かをする前には、
– この記事の妥当性を疑って、別の記事でも確かめてください。
– 重要なリポジトリで作業を行なう前に、テスト用にリポジトリを作って、小規模に試してみてください。
—## 主張:作業中のbranchにmasterでの変更を取り込むには, `git merge origin/master` を使おうと思う。
### git rebase の記事
>Gitで作業中のブランチにmasterの最新の変更を取り込むには、rebase を使います。
という内容の記事が多い。そうして、conflict が生じたときに、その解決方法を示しているものが多い。
>コンフリクト部分の修正手順
>「コンフリクトが発生する」 → 「コンフリクトを修正する」→「git add .」 → 「git >rebase –continue」を繰り返すそうして、このconflictを修正して git add , `git rebase –continue` を繰り返すのが、何度も生じてしまのだ。
どうやら、git rebase masterでは,自
git-filter-repoでフォルダー移動をするという歴史改竄をする
# 元ネタ
https://stackoverflow.com/a/72142795/6277384
git-filter-repoというのを知らなかったので、使ってみます。
git-filter-repoとは`git filter-branch`の代替ツールで高速に安全に操作できます。
# やってみた
## 移動するときに同名のファイルが有って衝突するケース
:::note alert
以下簡単のために、`git filter-repo –force`していますが実際には`–force`せずに新たにcloneして実施してください。
:::“`bash
$ cd filter_test/
$ git init
$ echo “aaa” > a.txt
$ ls
$ mkdir foo
$ echo “aaaa” > foo/a.txt
$ echo “aaa” > foo/b.txt
$ echo “aaa” > foo/c.txt
$ ls
$ ls foo/
$ git add a.txt
$ git status
$ git commit -m “init”
ssh鍵を作った後でBitbucketやGithubにssh接続する
# はじめに
私がいつもBitbucketにssh接続する時の儀式を記します。ターミナルを閉じたら毎度`git@bitbucket.org: Permission denied (publickey).`になってしまうので儀式をやらないといけない。。。良い解決方法とかあるんでしょうか。
“`
% ssh -T git@bitbucket.org
git@bitbucket.org: Permission denied (publickey). # 儀式をやらないといつもこうなる
“`# 儀式 (Bitbucketにssh接続する)
Macのターミナルでやっています。## 手順1
“`
% eval “$(ssh-agent)”
Agent pid 63819
“`## 手順2
`ssh-add`のあとは`ssh-keygen`で作成した秘密鍵のパスを渡してください。
“`
% ssh-add /Users/(ユーザ名)/.ssh/id_rsa # ここは秘密鍵のパスを記述します
Identity added: /Users/(ユーザ名)/.ssh/id_
【Git】ローカルからリモートリポジトリのブランチが確認できない
## やりたかったこと
リモートリポジトリから派生してブランチを新規作成### 実行手順
1. vscodeでコマンドパレットを開く(ショートカット:Ctrl+Shift+P)
1. 「git checkout」と入力して、「Git: Checkout to…」を選択
1. 親ブランチを選択 → **ここで親ブランチにしたいリモートリポジトリがでてこない!!**## 原因:リモートのブランチがローカルに反映できていなかった
そもそもGitの仕組みがよく分かってない:baby_tone1:
こんな感じで、ブランチごとローカルに持ってきているみたい
(なんとなく今さわってる変更点だけがやりとりされるんだと勘違いしてた)
## 解決方法:一度リモートリポジトリの情報を消して、再度追加する
現在のリポジトリからリモートのリポジトリを
【自分用】GitHubを用いた開発の流れを整理する。
# はじめに
今回は完全に自分用の投稿になります。
GitHubのルールに沿った開発の流れを整理したかった為、ここに記述します。
※下記はGitHubDesktopを使用した流れを想定しています。
# 流れを確認する前に
### リポジトリ
リポジトリとは、Gitの管理下にあるファイルやディレクトリの変更履歴を保管しておく箱。### ローカルリポジトリ
ローカルリポジトリとは、自分のPC上(ローカル環境)に置くリポジトリ。(PC上)### リモートリポジトリ
リモートリポジトリとは、外部サーバー上に置くリポジトリ。(GitHub上)### commit
ファイルやディレクトリの変更修正を、リポジトリに記録。### コミットメッセージ
どのような修正か分かるように記述### push
ローカルリポジトリでのコミットをリモートリポジトリに反映。### commit log
commitを確認できる。GitHub Desktopの「History」のこと。### インデックス
変更修正が、一時的に保存される場所。保存内容がcommitの対象。### add
追
Git コマンド まとめ2
git reset -soft HEAD :コードは生かしcommitのみ取り消す
git reset -merge :mergeキャンセル
git reset -hard HEAD & git pull :gitコード強制的に全て受け取る。
git push remote_name -delete branch_name :遠隔ブランチ削除
git fetch :gitサーバーから最新コードを受け取る。MERGEはしない
git stash pop :最後に臨時保存した作業コードを持ってくる
cat readme.md : readme.mdの内容を確認
git log –onelineでコミットID、メッセージ、HEADをサクッと確認
コミット履歴を調べるために“git log“としても良いが、
コミットID、メッセージ、HEADのみ知れれば良い場合は以下コマンドが便利。
“`
$ git log –oneline
“`
【備忘録】Git(Lab)をCUIで一週間で使えるようになるまで(単語編)
# はじめに
本投稿はGitどころかプログラミングも初心者であった私がGitをCUIで使えるようになった経験をもとに作成しております。そのため言葉の解釈や定義が若干違うところはあるかと思います。しかし、今回はあくまで初心者の方が読んだ時に各用語を理解するための説明となっておりますのでその点ご了承下さい。(要はイメージを分かりやすくするためにかみ砕いて作ってます)# そもそもGitとは?
バージョン管理システムの一つです。Git以外の代表的なバージョン管理システムとしてはsub version SVMなどがあげられます。じゃあGitは何が特徴的なのかというと「branch(ブランチ)」という機能を使用することです。他のバージョン管理システムとの違いとか、この辺については今のところはあまり気にしなくてもいいかと思いますので、そもそもGitとはなんぞやって気になる方はご自分で調べてみてください!
# ブランチ
文字通り **枝** です。下の画像のようにある一本の大きな枝(マスターブランチ、GitLab上ではmainブランチ表記が多い)から枝分かれして出来ていくイメージ。枝
【Dokcer】gitを使用する【Remote-Containers】
## はじめに
Remote-Containersでgitを使用する方法について記載します。
設定を行わないと以下のようなエラーが発生します。
“`:ターミナル
$ git clone git@github.com:sample/example.git .
Cloning into ‘.’…
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
“`
OSによって手順が異なりますのでMacの設定方法について記載します。## gitを使用する方法
秘密鍵を作成してGitHubに公開鍵を設定します。
次に以下のコマンドをローカルで実行し、ssh-agentにローカルSSHキーを追加します。
“`:ターミナル
$ ssh-add ~/.ssh/id_rsa
Identity added: /
Gitコマンドあれこれ
# 初期設定
**ユーザー名を設定**
“`bash
git config –global user.name “Githubのユーザー名”
“`**メールアドレスを設定**
“`bash
git config –global user.email “メールアドレス”
“`**エディタを登録**
“`bash
git config –global core.editor “エディタ名”
“`– vscodeの場合: `code –wait`
– atomの場合: `atom –wait`****コマンドラインの色の設定****
“`bash
git config –global color.ui auto
“`– git statusなどをした時の、Untracked file, staged fileなどの表示色がわかりやすくする
## 設定確認
**設定を一覧で確認**
“`bash
git config –list
“`# ローカルリポジトリ
## ローカルリポジトリ作成
“`bash
git i
gitignoreファイルを除外する方法メモ
## gitignoreをgitignoreでignore(無視)
– gitignoreファイルにgitignoreファイルを無視するように指定してgit管理から外す方法。
“`gitignore
~~~
.gitignore
~~~
“`## .gitファイルのexcludeファイルに追記
– 対象のリポジトリにある.git/info/excludeファイルにgitignoreを追記する方法。
“`exclude
# git ls-files –others –exclude-from=.git/info/exclude
# Lines that start with ‘#’ are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~/* 上記は元々記載された情報。この下から追記 */
.gitignore
`
【Git】インストーラー版のGitをアンインストールする方法とは?(Mac標準のGitに戻す)
# はじめに
GitインストーラーのGitをアンインストールして、Mac標準のGitに戻す方法を書いてみます。
何かの参考になればと思います。# 前提
– macOSを使用予定(macOS Monterey バージョン12.4)“`zsh
% sw_vers
ProductName: macOS
ProductVersion: 12.4
BuildVersion: 21F79
%
“`– シェルはzshを使用
“`zsh
% which zsh
/bin/zsh
%
“`– 作業前のGitの状況
“`zsh
% where git
/usr/local/bin/git
/usr/bin/git
“`– それぞれのGitのバージョン
“`zsh:Mac標準版
% /usr/bin/git –version
git version 2.32.1 (Apple Git-133)
%
“`“`zsh:インストーラー版
% /usr/local/bin/git –version
git version 2.27.0
%
“`# アンイ
oh-my-zshでgitコマンドのaliasがあったのでここに載せておく
aliasとは別名という日本語です
gitコマンドを省略したコマンドalias一覧githubに載せてくださっていた方がいたため、ここにメモとして記載しておきます。
[引用元](https://gist.github.com/virajkulkarni14/a719d23faec4015068e363f75797dbd7)“`text: 個人的によく使うalias一覧
gb=’git branch’
gbd=’git branch -d’
gbr=’git branch –remote’
gcb=’git checkout -b’
gcf=’git config –list’
gcmsg=’git commit -m’
gco=’git checkout’
gm=’git merge’
gp=’git push’
grb=’git rebase’
grbc=’git rebase –continue’
grbm=’git rebase master’
gst=’git status’
“`“`text: gitコマンドのalias一覧
-=’cd -‘
…=
gitでlatex管理
# はじめに
指導教官から論文指導を受ける際に前回からの修正を明らかにするために、latexdiffを使用していた。“`
latexdiff old.tex new.tex > diff.tex
“`
こんな感じで古いファイルと新しいファイルの差分をとると
このように一目で何がどう変わったかわかるので指導する側からしてもやりやすいと思われる。しかし、差分をとるためには古いtexファイルを保存しておく必要があるため、フォルダの中が過去のファイルで大量になってしまい煩わしい。そこでgitによるバージョン管理を導入する。
# gitとは
筆者もきちんと理解していないが、プログラムなどを作成する際に複数の人が同時に作業を行うことを可能にする、誰がいつ編集したかを明らかにする、バグや問題が発生した際に原因を特定するために前のバージョンに戻す、
既存のフォルダをリモートリポジトリにプッシュしたかった
# 概要
リモートでリポジトリを作成しクローンする形であれば非常に簡単ですが、
既存のフォルダをGit管理下に置き、そのローカルリポジトリをリモートにPushする方法が自分にはややこしいかったのでまとめておきます。# 環境
– Mac
– iTerm2 or SourceTree
– Bitbucket# ローカルリポジトリを作成する
まずは既存のフォルダをGitの管理下に置きます。
“`
$ git init
$ git add . (git add.ではない! addと.の間に半角スペース入れてね!)
$ git commit -m ‘コミット内容’
“`
これでローカルリポジトリができました。# リモートリポジトリを作成する
次は各環境でリモートリポジトリを作成します。
私はBitbucketを利用しているので以下の画像のように作成しました。
![スクリーンショット 2022-06-03 11.22.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93737/f18da9
【Git】自分的よく使うGitコマンド
# 初回プッシュ
## 既存のファイルをプッシュする
**ファイル追加してない場合**
“`
cd ローカルリポジトリのパス
git init
git branch -m main
git remote add origin https://github.com/SNQ-2001/XXXXX.git
git add -A
git commit -m ‘first commit’
git push origin main
“`**READMEやLICENSEを追加した場合**
“`
cd ローカルリポジトリのパス
git init
git branch -m main
git remote add origin https://github.com/SNQ-2001/XXXXX.git
git pull origin main
git add -A
git commit -m ‘first commit’
git push origin main
“`# 2回目以降プッシュ
“`
cd ローカルリポジトリのパス
git add -A
git commit -m ‘upd