今さら聞けないGit 2021年10月27日

今さら聞けないGit 2021年10月27日

GitHubにSSH接続してみた

#なぜSSH接続するのか
HTTP形式やHTTPS形式などGitHubで使える通信規格は何種類かあり、
一般的にはHTTP、HTTPS形式が使われています。
しかし、SSHプロトコルを使うことで、リモートサーバーや各種サービスへの接続や認証が可能となり、GitHubに接続する際にユーザー名などを省略することができます!
#接続方法
GitHubにSSH接続するためには、鍵の登録が必要となります。

#公開鍵、秘密鍵を作成する

鍵とは公開鍵と秘密鍵のことです。公開鍵は一般に公開するもの、秘密鍵はほかの人に見られてはいけません。
そのため秘密鍵は自分で保持し、公開鍵は相手(今回であればGItHub)に送ります。
#公開鍵と秘密鍵のペアを生成
まずは鍵を作成するため、鍵を入れるフォルダーに移動します。

“`
$cd ~/.ssh
“`
初めて鍵を作成するときには何も入っていない状態です。
次のコマンドで鍵を作成します。

“`
$ssh-keygen -t rsa
“`
作成する際にいろいろ聞かれますが、そのままEnterを押すと、id_rsaとid_rsa.pubの二つの鍵

元記事を表示

トラブルケース別Gitコマンド

#Gitコマンドのケース別の解決方法をまとめる
自分用に業務効率のため備忘録的にまとめます。
影響が大きいコマンドも多数含まれているので実施の際は自己責任 or 周囲のアドバイスを仰いでください。
今後も定期的に追加していきます。

##1. 直前の作業を元に戻す
###コミット
“`
#直前のコミットまで元に戻す
git reset –soft HEAD^

#コミットIDを指定して元に戻す
git reset –soft [コミットID]
“`
###ステージング(インデックス)
“`
#直前のコミットまで戻す
git reset HEAD^
git reset –mixed HEAD^

#直前のコミットまで指定したファイルのみを戻す
git restore –staged [ファイル名]
git reset HEAD [ファイル名]
git reset [ファイル名]

#コミットIDを指定して戻す
git reset –mixed [コミットID]
“`
###ワーキングツリー(作業ディレクトリ)
“`
#直前のコミットまで戻す
git reset –h

元記事を表示

ローカルからgithubのmasterもしくはmainブランチへpushさせないようにする設定

## GitHubに任せられるものは任せよう

今までgithooksのprepushとかでshell組み込んで対応していたが、github上でできるとのことなので時代の進化に合わせるでがんす。

`Require a pull request before merging`にチェックをつけると良い。

![FireShot Capture 003 – Branch protection rule – github.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125469/6b46c6b7-2bd3-d91b-5b2a-7db7f4e33793.png)

早漏なのか以下の記事見てガンガンいこうぜモードで試してみたらmasterにpushできてしまった…

https://zenn.dev/shimotaroo/articles/71f10e7e76ecb3

ちょっと下にある`Include administrators`にチェックつけたらmasterにpushできなくなった。
めでた

元記事を表示

pull requestでTipsDivergenceExceededExceptionが発生して差分が表示されなかった時の対応

###問題
ソースツリーのgit pushでリモートにあげた作業ブランチをreleaseブランチへpull requestしたところ
下記メッセージが表示されてしまい、差分が表示されませんでした。

**TipsDivergenceExceededException**
The merge cannot be completed because the divergence between the branches is too great. If you want to merge these branches, use a Git client.

###対応内容
作業ブランチにreleaseを取り込みgit push
その後再度pull requestしたところ差分表示されました。

元記事を表示

Githubの認証をパスワードから Personal Access Token に切り替える

2021年8月13日から、パスワードを用いたGithubへの認証がセキュリティ上の理由から廃止されました。
今までコマンドラインからGithubにアクセスする際にパスワード認証をしていた場合は、それが使えなくなり、代わりに Personal Access Token(個人アクセストークン)を用いた認証かSSH認証に切り替える必要があります。
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

以下は、personal access token を用いた認証手順です。

### トークンの発行
初めに https://github.com/settings/tokens からトークンを発行します。一般的なgit操作(clone・pull・push等)の場合、権限はrepoにチェックが入っていれば十分です。
以降はここで発行したトークンを使います。発行画面を閉じると一切中身が見れなくなるので、忘れずにコピーしておきましょう。

### 対話的にアクセスする場合
コマンドラ

元記事を表示

vscodeでgitの異なるbranch間の差分を確認する方法

# はじめに
意思に反してBranch間の差分が大きくなってしまった場合に一つ一つのファイルに関して修正していくことが時間はかかりますが,正攻法となることがあります.
この記事ではVSCode上において,どのように異なるbranch間のファイルの差分を確認するか記述します.
なお,この情報は2021年時点での回答となり,参照は[StackOverflow](https://stackoverflow.com/questions/42112526/how-to-compare-different-branches-in-visual-studio-code)に存在します.

# 手順
**手順1**. 拡張機能の[GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)をinstallする
**手順2**. source control (下図参照) をクリックする

![C3jLv.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

GitHub で `master` -> `main` に変えた時にローカルで叩くコマンド

変えた後別のマシンで開いた時に大体忘れてるのでメモっておく

“`sh
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a
“`

元記事を表示

【初心者向け】2回目以降のgit pushの方法

環境

MacOS BigSur11.5.2
git version 2.31.1

この記事を書いた理由

初期設定や初回のgit pushの仕方は多くあるものの2回目以降のpushの仕方の情報はあまりなかったためまとめます。自分自身もハマりました。
Macのためターミナルにて作業を行います。

方法

“`
$ git add -A
“`
AはAllの略
全て追加するということ

“`
$ git commint -m “コミットメッセージ”
“`
メッセージは英語でも日本語でも大丈夫です。自分にとってわかりやすいものにすると後から楽です。

“`
$ git push
“`
##完了!
めでたし。

元記事を表示

【便利】gitのコマンド入力を楽にするエイリアス

gitコマンドは、エイリアスを設定していると、非常に打つのが楽になります。

今回はその設定方法を紹介します。

###1. エイリアスをglobalで設定する

“`
$ git config —-global alias.”設定したい文字” “gitのコマンド”
“`
####またはvimで~/.gitconfigを開き、設定

“`
$ vi ~/.gitconfig
“`

###2. 設定例
“`
例)checkoutを “co”としてエイリアスに設定

$ git config –global alias.co checkout //git coと打つと、git checkout を実行してくれるエイリアス
“`

###3. 設定したエイリアスの確認方法
“`
$ git config –list
“`

###4. 筆者が実際に設定しているエイリアス一覧
“`
alias.co=checkout
alias.br=branch
alias.cm=commit -m
alias.st=status
alias.fe=fetch
alias.me=

元記事を表示

gitignoreの書き方

#gitignoreとは
***gitignore***は、Gitで使われる特殊なファイル。***gitignore***に書かれたファイルは、Git管理の対象から除外することができる。
これは隠しファイル「***.gitignore***」であり、設定したいディレクトリに置く。

# gitignoreの書き方
まずは、Git管理から除外するファイルを設定したいディレクトリに「***.gitignore***」ファイルを作成する。
次に、以下の書き方を使って除外対象のファイルを指定する。

####■ ファイル名・ディレクトリ名を直接指定する
同名のファイルとディレクトリをすべて除外する場合

“`
# 指定ファイルを除外する
sample.txt

# 指定ディレクトリを除外する
sample/
“`
一方で、ファイルやディレクトリ名の最初に「“`/“`」を付けると***.gitignore***と同じ階層の相対パスで指定されたものが除外される。

####■ ワイルドカードを使った指定
ワイルドカード「“`*“`」を使うことで、特定の拡張子などを指定することができる。

元記事を表示

【ゼロから始める】大学生・大学院生のためのGit/GitHub入門

# はじめに
私は現在情報・工学系の大学院1年生で、ありがたいことに様々な分野の研究をしている友人がいます。そんな友人達からよくコードについての質問を受けるのですが、**「え、あなたもコードを書くの…?」**となるような事が多いです。例えば、生物系の研究をしている友人はpythonを、医学系の研究をしている友人はRを、心理系の研究をしている友人はJavaScriptを…といった具合に、今や分野を問わず多くの学生がコードを書いています。さらに、エンジニアの需要が高まっているせいか、法律系や社会系などの文系の学部を卒業した学生がエンジニアとして就職する例も少なくありません。
その一方で、非エンジニアの学生の多くはコードを書くためのお助けツールをあまり利用していないとも感じています。例えば、VSCodeのようなエディターやStackOverflowやQiitaのようなエンジニア向け情報共有サービスなどです。そして、その中の一つがこれから紹介する**「Git/GitHub」**になります。
Git/GitHubは**大学ではなかなか教えてくれない道具**である一方で、**研究や授業、就活に

元記事を表示

GitHub – ローカルのXcodeProjectをgithubにあげます

iOSのプロジェクトをgithubで管理したい時、まずgithubにあげるでしょう。これで自分のやり方を共有いたします。
#Step1:githubで新しいレポジトリを作成する
まずgithubのこのNewを押して
![截圖 2021-10-24 20.13.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1326861/e40b878f-f363-d93d-a136-7adae582e6fc.png)
Repository nameは普通プロジェクト名と同じでいいです。
![截圖 2021-10-24 21.51.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1326861/63d56550-50c7-fae3-4eec-11de682d91c0.png)
#Step2:ProjectにGit Repositoryあるかどうかを確認する
タミナールを開いて、Projectのフォルダーに行って **git re

元記事を表示

gitで修正が消えてしまって原因がわからないときに過去のcommitとマージする方法

# 初めに
原因がわかってないのでもしかすると間違っているかも知れません。
間違いが合った場合指摘していただけると幸いです。
# 結論
“`
$ git cherry-pick
“`
で任意のcommitとマージが出来る。
このcommitの前後は完全に無視してマージされるので、例えばこのcommitの後にdeleteされたファイルでもそのdeleteを無視してマージしてくれる。
なのでとりあえず原因がわかってなくてももとに戻すことができた。
(cherry-pickの意味はつまみ食い)
# 状況
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573723/c8bc5779-2a50-7c1e-8da6-a6a69ab6c454.png)

commit(8752bdd9)のときにcommitしたファイルがcommit(52f9240e)のときには消えてしまっていた。(おそらくどこかでdeleteされた)
直しようがなかったので `git cherry-pic

元記事を表示

AWS CodeCommitでプロジェクトを開始する

AWS CodeCommitを中央リポジトリとしてプロジェクトを開始します。

## 中央リポジトリを作成する

> [!IMPORTANT]
> この手順を実行する前に、『[AWS CLI User Guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)』を参照して、AWS CodeCommitの管理権限を持つAWS CLIの名前付きプロファイルを構成してください。

AWS CLIを使用してAWS CodeCommitに中央リポジトリを作成します。

次のコマンドを実行します。

“`bash
$ export AWS_PROFILE=${PROFILE_NAME}
$ aws codecommit create-repository –repository-name ${PROJECT_NAME}
{
“repositoryMetadata”: {
“accountId”: “xxxxxxxxxxxx”,
“reposi

元記事を表示

【Git初心者】Git 最低限のコマンド集

Gitを使い始めて間もないため、どのコマンドを使うのか混乱しがち…
と言うことで、最低限必要なコマンドをまとめました。

## リポジトリセットアップ(初回のみ) `init`
Git管理を始めたいディレクトリで、`init`コマンドを実行。

“`
git init
“`

## コミット対象に追加 `add`
ファイルをコミット対象に追加する場合は、`add`コマンドを使用する。

“`
git add [オプション]
“`

`add`コマンドにはいくつかパターンがある。
いずれのパターンでも`-n`オプションをつけることで、実際の処理は行わずに処理内容だけを表示することができる。慣れないうちは、このオプションを有効活用していきたい。

### ①ファイル名を指定して追加

“`
例1)
git add sample.rb
例2)
git add *.rb
“`
上記のようにファイル名を指定する。ワイルドカード(`*`)による指定も可能。

### ②バージョン管理されており、変更があった全てのファイルを追加 `-u`

“`
git add -u
“`
「変

元記事を表示

エンジニア半年でよく使うようになったgitコマンド

# はじめに
エンジニアになって半年、最近になってやっと本格的なプロダクトコードを書くことが多くなってきました。
エンジニアになる前は、自分の作ったプロダクトのコードを公開、記録しておくためだけにGitHubを使っていました。
その時は大体以下のコマンドを覚えておけば基本的に問題ありませんでした。

“`bash
# 新しくブランチを作った上でブランチを切り替える
git checkout -b {新しいブランチネーム}

# 変更内容を全てステージングエリアにあげる
git add .

# コミットメッセージ付きでコミットする
git commit -m “コミットメッセージ”

# リモートブランチへpushする
git push origin {ブランチネーム}

# リモートブランチの内容をローカルブランチに反映
git pull origin {ブランチネーム}
“`

しかし、エンジニアとして仕事をしていく上でこの4つだけでは不便な場面も多くその都度調べていたため、今回メモという形で最近使う機会が多くなったコマンドを紹介していきたいと思います。

# 使うように

元記事を表示

Herokuへデプロイする手順

ローカルで作成したDjangoアプリをHerokuへデプロイする手順を簡単に紹介します。
![heroku_フロー図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1667780/a17c189e-b0ac-c98b-dc6b-f7afd23ae26a.jpeg)

#### 必要なライブラリのインストール

“`python
pip install gunicorn
pip install django-heroku==0.3.1
“`
***

#### Procfileを作成
下記のように process type : commandの順で記述します。ファイル名の「P」は大文字にしましょう。

“`python
web: gunicorn helloworldproject.wsgi
“`
***

#### requirements.txtを作成
Herokuに必要なライブラリを教えるために用意します。下記のコードを実行することで自動的に必要なライブラリが記載された「requiremen

元記事を表示

開発効率を上げるコミットメッセージ、プルリクを書こう!

#コミットとプルリクに書くこと決まってる?
開発をするのに避けて通れないのが、コミットとプルリク(マジリク)です。

新人であってもベテランであってもしないといけませんが、どんな書き方をするか決まっていますか?

個人個人で書くことがバラバラだったり、必要な情報が入っていないと書き手にもレビュワーにも負担がかかってきます。

書き手が意図していることがレビュワーにしっかり伝わること
また、レビューをしやすくするようなものにできると開発もスムーズに進むと思います。

一つ使えそうなお作法をまとめたので、良さそうだと思ったらプロジェクトに導入することをぜひ検討してみてください!

#コミットメッセージにプレフィックスを

####プレフィックスを先頭につけよう!

プレフィックスを見れば、一目でどんな種類の修正かが分かるし、統一感がでます!

add: 新規機能の追加
refs: 機能の修正
del: 機能の削除
fix: バグ修正

![スクリーンショット 2021-10-23 13.30.08.png](https://qiita-image-store.s3.ap-northea

元記事を表示

gitignoreが上手くいかない

一度Gitに上げたものは、ただ.gitignoreを編集してもアップロードされ続けてしまうそうです。
下記コマンド実行の上、.gitignoreを編集するときちんとアップロードをしないようにしてくれます。

“`
git rm -r –cached .

元記事を表示

【git】(続き)ブランチ、プル、マージとか【チーム開発を目指して】

https://qiita.com/hemuwan-kazu/items/44c77ecc90c541a79f94

からの続き。

こっちは気を付けることはなさそうなので自分用にメモ。内容はn番煎じ。

githubにpushできたリポジトリをクローンするとこからやっていく。

### 使うコマンド一覧
– `git clone `
– `git branch <任意の名前>`
– `git checkout <移動先ブランチ名>`
– `git branch `
– `git add <ファイル名>`
– `git commit -m <"メッセージ">`
– `git push <リモートリポジトリ名> <ブランチ名>`
– `git pull`
– `git log`

以下のコマンドを実行し、パスフレーズを打ち込むとクローン完了。
(なぜか今回はssh://なしでいけた。もうよくわからん)

“`powershell
> git clone git@github.com:hemuwan/test.git

Cloning

元記事を表示

OTHERカテゴリの最新記事