今さら聞けないGit 2021年07月21日

今さら聞けないGit 2021年07月21日

新しい開発をする時に迷わずGitを準備するための覚書

#はじめに
新しい開発を行う時に手が止まらないようGitの設定や手順を残しておきます。
なお、本記事は以下のUdemy講座を元にした覚書です。
[米国AI開発者がやさしく教えるGit入門講座](https://www.udemy.com/share/1046EOAEASdltXRH0F/)

#前提
– 手元のPCにGitインストールされていること
– GitHubにアカウントがあること

#記事中の構成
実行結果をそのまま記載しているため、適宜以下は変更してください。

– Gitユーザー名:c3drive
– リポジトリ名:my-git-practice / git-practice
– 作業ブランチ名:update-readme / new-feature / conflict など

#git構成覚書
【ワーキングディレクトリ】…作業をしているところ
↓ git add   ↑ git restore
【ステージングエリア】…addされているところ
↓ git commit  ↑ git restore –staged
【リポジトリ/作業用ブランチ】※

–リモートリポジト

元記事を表示

gitコマンドの備忘録

たまにしか使わなくて忘れるけど、都度検索するのが面倒なので自分用のまとめ

## 実行権限付与
“`
git update-index –add –chmod=+x *.sh
“`

## ブランチ切り替え、無ければ新規作成
リモートがあればリモートに、無ければ新規作成してリモートにもpushする

“`
git checkout $branchName || { git checkout -b $branchName; git push origin $branchName; }
“`

## 変更があればコミット
“`
git add .
git diff-index –quiet HEAD || git commit -m “commit message”
“`

## developにマージ済のブランチと、リモートで削除済のブランチを削除
“`
git checkout develop
git pull
git branch –merged | grep -vE ‘^\*|master$|develop$’ | xargs -p -I % git bran

元記事を表示

Git hooks pre-commitを使って意図しない変更のpushを防ぐ

## はじめに
突然ですが、こんな経験ありませんか?

:confounded:< featureブランチにpushしたつもりがdevelopにpushしてしまった! :confounded:< pushしてからデバッグコードの消し忘れに気づいた! どちらかを経験したことがある方は多いのではないでしょうか?(恥ずかしい話ですが私もあります...) pushする前だったらローカルでcommitの取り消しができますが、 一度pushしてしまうとその差分は履歴として残るし、それを消すにしても消した履歴も残ってしまいますよね。 できることならpushする前に気づいてそっと修正したい...! ということで、 今回は**「git commit した時にスクリプトを実行することで意図しない変更がpushされないようにする」**をやっていきます。 ## やり方 やりたいことは「git commit した時に任意のスクリプトを実行する」ことなので、 今回は[Git フック](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%82%AB%E3%82%B9%

元記事を表示

git pull でコンフリクト?だかなんだかが出る

今回は自分のための記事です.

gitコマンドで最新のソースコードを常に保持していたい.
ただ,実験PCは複数台あるから,だれかが少し書き換えたら,pullでエラー吐く.

そのエラーは下記.

“`
error: Your local changes to the following files would be overwritten by checkout:
test.txt
Please commit your changes or stash them before you switch branches.
Aborting
“`

gitは調べればたくさん出てきます.
私はそこまで詳しくないので,解説できません.

git pullをした際に,マージする?スタッシュする?みたいに聞いてきます.
独自に編集したものが消えちゃうけど大丈夫?ってgit側が親切に聞いてくれてます.
git pushを強制的に行うコマンドは存在するが,git pullを強制的に行うコマンドは存在しないらしい.

じゃあ,どうすれってんだよ
1番クリーンなのは,全て消して,クローンし直すこ

元記事を表示

SVNで困ることいろいろ(バージョン管理初心者向け?)

# この記事について
Git信者の私が、SVN管理のプロジェクトで困ったことをいろいろ書いていきます。
Qiitaの皆さんはGitがお好きだと思いますのであまり需要は無さそうですが、「なぜSVNはダメなのか」という点はあまり書かれてなかったような気がしなくもないのでとりあえずザラッと書き込んでみます。ザラザラ

Git初心者がなぜGitを使わなければならないのか、とかその辺の参考になるかもしれません。

# GitとSVNどちらが人気か
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1642231/2b747339-ab38-d385-7634-e2d15db3dd0c.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1642231/dcec66cd-b19e-d7f8-7187-b92ed815e9d2.png)
どうみてもGitが人気です。
本当にありがとうございました。

元記事を表示

【Git】チームから学ぶGitの使い方 GitHubでチーム作成編

####My Profile
プログラミング学習歴②ヶ月目のアカウントです!
プログラミングスクールで学んだ内容や自分が躓いた箇所等のアウトプットの為に発信しています。
また、プログラミング初学者の方にわかりやすく、簡潔にまとめて情報共有できればと考えています。
もし、投稿した記事の中に誤り等ございましたら、コメント欄でご教授いただけると幸いです。 

#対象者

* GitHubでチーム作成をしたい方

#目的

* GitHubを使ってチームを作成すること

#実際の手順と実例
###1.前回までの流れ
下記のURLを✅です!

https://qiita.com/nao0725/items/93edf410d4951c157dfa

###2.早速チームを作成

下記では3人のチームを想定。
まずは代表者がGitの設定をしていく。

①下記画像のカーソルをあわせた部分   **NewOrganaizattion**でチームを作成します。
![スクリーンショット 2021-07-19 21.16.48.png](https://qiita-image-store.s3.ap-

元記事を表示

.gitignore_globalを使うのをやめてデフォルトの置き場に戻す方法

Macのフォルダやファイルに関するmeta情報が格納されている.DS_Storeという名前のファイルをMac全体でgit管理から外すために
[.gitignoreで.DS_Storeを削除しよう](https://qiita.com/takashimelon/items/def769aaaa1d41cc44d4)
を参考に~/.gitignore_globalを作成したのですが、
[~/.gitignore_global を指定するのをやめ、デフォルトの置き場に置こう](https://zenn.dev/qnighy/articles/1a756f2857dc20)
という記事を見かけてデフォルトの~/.config/git/ignore を使うように変更しようとした時に、既に作ってしまった ~/.gitignore_global をどうすれば良いか少し悩んだのでメモ。

###~/.gitignore_global を削除し.gitconfigを編集

ターミナルから削除もしくはfinderで「command」+「shift」+「.」 で隠しファイルを表示して~/.gitignore

元記事を表示

4Stepで変わる!!劇的にGitHub操作ができるようになったTips

## はじめに
筆者は元々Gitに対して苦手意識があり、更にターミナル操作がとても苦手でした。
しかし一度CUIベースでGit操作する事でGitHubでのversion管理について理解を深め、苦手意識を克服することができたのでそのTipsを紹介したいと思います!!
### 想定読者
・普段GitHubを利用してversion管理をしている
・Repositoryにコミット、プッシュぐらいしか行っていない
・SourceTreeしか使ってない
方で
・これからチーム開発に参入する
・コード試験を受ける為Git操作を学びたい
・もう少しGitを深く学びたい
という方向けの記事です。
ですのでGitのダウンロード方法や、そもそもGitとは?やGitとGitHubの違いなどを知りたい方は別の優良記事を読む事をお勧めします。
## これを覚えるだけで劇的にGitHub操作ができるようになるTips
・ターミナル操作はまずadd、status、commit、pushの4つだけを理解する!!
・プルリクはMilestoneとIssueをたててから!!
・ブランチについてはbranch、checkou

元記事を表示

WSL の git

Ubuntu 20.04LTS
WSLでも基本変わらないはず。
keyはwindowsホスト側に存在するので、これを一緒に使いたい。

接続できないことを確認。

“`Terminal
ssh -T git@github.com
The authenticity of host ‘github.com (52.192.72.89)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
“`

これはgithubのホストの確認なので、[ここ](https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints)と一致していたら y

元記事を表示

Git For Windowsをさわってみる from PowerShell

`Windows`環境で`Git`を使い始める時に自分だったらこういうことを知りたかったかな? ってことのまとめ。

`Windows`で`PowerShell`から`Git`コマンドを実行する時のあれこれについて初級編。

## Git For Windowsって?

そもそも`Git`とはなんぞや?

`Git`は`Linux`の生みの親として有名なLinusさんが2005年に`Linux`のソース管理のために生み出した分散バージョン管理システム。

`Linux`のソース管理で`Git`が必要になった背景等は [Gitの10年間: Gitの生みの親 Linus Torvalds のインタビュー](https://jp.linux.com/news/linuxcom-exclusive/428524-lco2015041401)に日本語記事があったけどリンク切れ。

InternetArchiveに残ってるのは [こちら](https://web.archive.org/web/20190502034447/https://jp.linux.com/news/linuxcom-ex

元記事を表示

WSL2でGitKrakenを使うまで

## はじめに

windowsでWeb開発をする場合、WSL2+VSCodeを使うと便利です。
ただ、Git周りはやはりGUIを使いたい、という思いはあるかと思います。
LinuxのGUIクライアントはいくつかありますが、今回はGitKrakenを使う方法を忘備録として記載します。

## 必要なツール

* X410(有料)
* https://x410.dev/
* GitKraken(有料)
* https://www.gitkraken.com/

## WSL2のインストール

まず、WSLのインストールを実施します。
方法は様々なサイトで解説されているので、今回は省略します。

以下はMicrosoftの記事です。
[Windows 10 用 Windows Subsystem for Linux のインストール ガイド](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)

Ubuntuが動作するところまで確認してください。
今回はUbuntu 20.04 LTS前提で話を進めます。

元記事を表示

数回前の要らないコミットを消す方法

# はじめに
作業中、過去のコミットで行った変更を元に戻す場面があった。
そのまま作業を続けてしまったが、コミット履歴がわかりにくくなっていたので、不必要になったコミットだけ削除した。
# git rebase とは
今回は`git rebase`コマンドを使ってコミット履歴を修正した。

**base** は名詞では**土台**、動詞では**基礎付ける**という意味で、これに再起的なニュアンスを表す接頭語 **re** が付いている。
イメージとしては、ある枝を切り離してから別の場所に接木し直す、といった感じ。

“`
C’ – D’ – E’ feature
/    → – A – B – C – C’ – D’ – E’ master
– A – B – C master rebase を実行
“`

上の例では`-C’-D’-E’`のブランチを master の先端にくっ付けている。

# 今回の状態
私が rebase 機能を使ったとき、作業し

元記事を表示

【git】git submodule の挙動を確認してみる【雑記】

“submodule“の挙動を確認するために、一つずつコマンドを実行して挙動を確認していく。

## サブモジュールの登録

“`bash
> git submodule add git@github.com:kiyo27/git-submodule.git
“`

変更を確認する。“.gitmodules“が作成されている。

“`bash
> git status
On branch main
Your branch is up to date with ‘origin/main’.

Changes to be committed:
(use “git restore –staged …” to unstage)
new file: .gitmodules
new file: git-submodule
> git diff HEAD git-submodule
diff –git a/git-submodule b/git-submodule
new file mode 160000
index 00

元記事を表示

【git】git でコンフリクトさせて解消してみる

git のおそらく最初の壁であるコンフリクトしたときの対応。

リポジトリを用意する。リポジトリの中身は↓

“`
.
├── README.md
└── conflict.txt
“`

コンフリクトさせるために、2つローカルにクローンする。

“`bash
> git clone git@github.com:kiyo27/git-practice.git repo-a
> git clone git@github.com:kiyo27/git-practice.git repo-b
“`

repo-aのファイルを編集してリモートにプッシュする

“`bash
> cd repo-a
> echo “hello world v1.” > conflict.txt
“`

変更をリモートに変更する

“`bash
> git commit -am “hello world v1”
> git push origin main
“`

repo-bでファイルを編集する

“`bash
> cd repo-b
> echo “hello world v2 > con

元記事を表示

GoogleColaboratoryで動くgit+Pytorch-lightning+hydra+wandbの1実験1スクリプト実験環境を作成する。

# 初めに

 この記事は
**「colab proのコスパの良さ最高だけど、notebookで実験管理すると終わりになるんだよなあ。。。でもGCE高くで使いたくないしなぁあああ。。。」**
という筆者のワガママから生まれた記事です。
具体的には以下のような欲求を満たします。

– **colab (pro)を計算リソースとして利用したい(これが一番大きい)**
– 実験コード管理はgitでやりたい
– ハイパラ管理はymlファイルでやりたい
– 実験結果や学習済みモデルは専用のサービスで管理したい
– 1実験1スクリプトで実験をやりたい

具体的には以下のようなディレクトリ構成になっており、

![スクリーンショット 2021-07-17 22.35.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540234/381097c4-2ead-226f-3462-b869a3ce4db4.png)

下画像のようにymlファイルでハイパラや実験に関しての情報を管理し
![スクリーンショット 2

元記事を表示

Git クローンしたリポジトリ[ローカル]を別リポジトリ[リモート]にpush

題名の通り、
クローンしたリポジトリ[ローカル]を別リポジトリ[リモート]にpushするやり方を知ったので
アウトプットしていこうと思います。

#流れ[図]
![Untitled (Draft)-1 2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/9aaf0d0c-ff2d-3d70-09ef-bddc90feb6ec.jpeg)

###■クローン

“`
$ git clone -b main https://github.com/kazuya424/testproject.git test
“`

###■作成したtestフォルダに移動

“`
$ cd test
“`

###■remote urlの確認

“`
$ git config remote.origin.url
https://github.com/kazuya424/testproject.git
“`

###■remote urlの変更

“`
$ git remote set-url

元記事を表示

【Git】結構使うけどいつも調べるGitコマンドまとめ

## はじめに

便利だけど使うときにいつも調べて使っているコマンドをまとめました。

〇〇したいときどうするんだっけ・・?
って調べているのでこの記事を書いているときも
たぶん全部を網羅できていません。笑

比較的しようするコマンドだったり便利だなって思うコマンドだったりは
カスタムコマンド(**alias**)登録したほうが簡単に扱えて良いと思います。

**alias** の登録の仕方は[こちら](https://qiita.com/suzu12/items/57978252d779ece1a9c5)の記事で紹介しています。
(前に書いた記事なので今回の含め少しずつ更新していきます。)

https://qiita.com/suzu12/items/57978252d779ece1a9c5

## 対象読者

– 最近Gitを使い始めた方(こんなのもあるんだって知ってると便利)
– Git操作に慣れてきた方
– 自分と同じように毎回いちいち調べてコマンドを叩いている方(意味の再確認ができて悪いことばかりではないけど)

## 目次

– はじめに

– 対象読者

– 目次

元記事を表示

GitHub PagesにSubmoduleを使う時の注意点

以下の2つの制約を守る必要があります。

– httpsで使用されていること
– submoduleがパブリックリポジトリであること

## GitHub Pagesのデプロイに失敗してしまった時

制約を守れなかった場合は、以下のような警告文が表示されます。(`discogs-python-api`というsubmoduleを、SSHで使用してしまいました)

![github-pages-build-error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251749/fe07fb8a-ec57-3f33-c6e0-34c0d9a128ba.png)

この状態になると、GitHub Pagesのデプロイに失敗しているので、サイトも404になってしまいます。

また、警告にあるリンクを辿るとSubmoduleを削除する手順が記載されています。
[GitHub Pages サイトの Jekyll ビルドエラーに関するトラブルシューティング – GitHub Docs](https://docs.git

元記事を表示

bash + git環境でプロンプトにブランチ名と作業ツリーの状態を表示させて快適な開発環境を作る

## tl;dr

bash + git環境で開発中にいまのブランチがわからなくなって、いちいち`git status`をたたいて状態確認するのがめんどうでたまらない人向けに、プロンプトにgitのブランチ名と作業ツリーの状態を表示させる方法をまとめます。

## 用意するもの・動作確認環境

bashならどんな環境でも動くはずですが、わたしの環境は下記の通り。

– Windows 10 Pro
– WSL2 (Windows Subsystem for Linux 2)
– Ubuntu 20.04.2 LTS

[WSL2の公式ドキュメントはこちら](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)

## 結論

.bashrcに下記のように記述する。

“` bash
# for prompt
source ~/.git-completion.bash
source ~/.git-prompt.sh

GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWUNTRACKEDFILE

元記事を表示

既存のファイルをGitHubに上げる方法

## はじめに
今回記事を書くのが初めてで分かりにくい箇所もあるかもしれないが、ご理解ください。

よくGitHubへのあげ方など書いてあったが、既存のフォルダのあげ方が全く書かれてなかったこと、書かれてたとしても私的にはイマイチわからなかったことなどがあったので、ここに記しておく。

下記のことを前提条件とする。
– GitHubの登録ができている。
– GitHubにあげたいフォルダが存在する。

## 目次
1.自身のGitHubに入り、Repositoriesのnewをクリック。
2.リポジトリを作成。
3.2で作成したリポジトリぺージに自動で切り替わるので、表示されているコードをターミナル、またはコマンドをコピペで完成

### 1.自身のGitHubに入り、Repositoriesのnewをクリック。
![A54B9EEF-3C18-4D46-82D6-E403DE02E383_1_105_c.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939251/2d66ceac-7e89-a

元記事を表示

OTHERカテゴリの最新記事