今さら聞けないGit 2021年02月17日

今さら聞けないGit 2021年02月17日

本番環境でコンフリクトした。。。

##はじめに
投稿2回目です。
この前、初めて本番環境でコンフリクトしました。
別に本番環境だからといって対処法は変わらないのですが、初めての経験でかなり焦りましたので備忘録として残したいと思います。

##状況
– 状況は下記のイメージ通りで、viでファイルを編集したことを忘れていました。。。

##まずは状況を確認する
自分の場合は原因も明らかでコンフリクトしていることは確定していたのですが、まずは“git status“で状況を確認します。

EC2に接続し、“git status“を実行します。
“both modified“と出力されたらコンフリクトしています。

“`
$ git status
Unmerged paths:
(use “git add …” to ma

元記事を表示

ブランチを過去の状態に戻したときの別ブランチの対応方法

# 前提
下記の2ブランチがある
– master(本番リリース)
– dev(次リリースの機能をマージしていく環境)
– feature(現在devにPR中で、devとコンフリクトしたのでdevをマージした)

dev環境でテストで大丈夫だったものをmasterにマージする

# 状況
devの一分機能をリリース取りやめになり、masterの状態へ戻した

この場合、すでにPR出しているものは次リリースの機能が必要だったり、devへのPRでコンフリクトするのでdevをマージしていたため、masterの状態に戻ったdevへのPRには不要な機能の修正も含まれていた。

# 直し方
revertするのが簡単だが、今後対象の機能を修正したのを取り込むので、revertするとそれを無効化するコミットが作成されてしまう。

>**マージコミットを打ち消すと、打ち消されたブランチに含まれていた変更が、その後、そのブランチを再度マージしたとしても、取り込みが発生しない、という事になります。これは、revert により変更自体は打ち消されても、マージの事実が歴史上に残り続けるからです。**

これは

元記事を表示

Git 基本コマンドまとめ(Git初心者に教えるチートシート)

### 1. Gitとは

参考図書:わかばちゃん
https://next.rikunabi.com/journal/tag/webdesign-manga/

### 2. GitをPCに導入しよう

* ダウンロード: https://backlog.com/ja/git-tutorial/intro/05/ (コンソールを選ぶ)
* 初期設定: https://backlog.com/ja/git-tutorial/intro/06/
* SSH接続設定: https://backlog.com/ja/git-tutorial/reference/ssh/

### 3. リモートリポジトリをクローンする
https://backlog.com/ja/git-tutorial/intro/14/

※リポジトリはもう作ってある前提

“`
git clone
“`

* repository…SSHのURL
* directory…ローカルに作成されるフォルダ名

### 4. ファイルをコミットする
https:/

元記事を表示

[git] merge vs rebase

Gitのmergeとrebaseを使い分ける方法について、Bitbucketの[マージとリベース](https://www.atlassian.com/ja/git/tutorials/merging-vs-rebasing)という記事がとても参考になったので要点を紹介します。

# ルール

– PRを出す前にrebaseを行い、乱雑な履歴をクリーンアップする。
– PRを出した後はrebase禁止。

> コードレビュープロセスの一環としてプルリクエストを使用する場合は、プルリクエストを作成した後に git rebase を使用しないでください。プルリクエストを行うとすぐに、他の開発者があなたのコミットを見ることになります。つまり、それは パブリック ブランチです。履歴を書き換えると、Git とチームメイトはフィーチャーに追加された後続のコミットを追跡できなくなります。
>
> 他の開発者の変更は git merge で取り込む必要があり、 git rebase ではありません。
>
> このため、プルリクエストを送信する前に、対話式リベースを使用してコードをクリーンアップする

元記事を表示

Webエンジニアが勉強できるGit Repositoryまとめ

こんにちは、WEBエンジニアのhedrallです。

もう一歩踏み込んでプログラミングに関して勉強をしようと思った時、
世の中には学習のためのレポジトリが存在していて、しかも世界的にはものすごい数のStarを獲得しているものも少なくないことを知りました。
今回はピックアップしてまとめて行きたいと思います。

# [⭐️96.6k]: [javascript-algorithms](https://github.com/trekhleb/javascript-algorithms)

プログラミングで使用されるデータ構造や、一般的なアルゴリズムがまとめられており、全てjsで実装が例示されています。

# [⭐️149k]: [developer-roadmap](https://github.com/kamranahmedse/developer-roadmap)

webやinfraなど各分野のエンジニアになるために知っておくべき技術がロードマップとしてまとめられているので、学習方針などに迷った時や、取りこぼしがないか確認したい時などに活用ができます。
完成したロードマップは [htt

元記事を表示

GitHubでThere isn’t anything to compare. Nothing to compare, branches are entirely different commit historiesが出る場合の対処方法

トイプロジェクトを書いたため、GitHubにあげようとしましたがめっちゃハマりました。
こんなところでハマったことは恥ずかしいですが、もし僕と同じ問題にあう方がいるかもしれませんので投稿します。。。(自分が今後同じ問題にハマらないためにも)

GitHubのプロジェクトにpushするため、
以下のコマンドを叩きました。

“`terminal
$ git init
$ git add .
$ git commit -m “init commit”
$ git remote add [project name] [branch url]
$ git push –set-upstream [branch_name]
“`

そうしたらGitHubのプロジェクトに、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566437/b3fc59eb-a859-dad1-fa4a-491594ffd84e.png)
のようなメッセージが出て、なんのpull requestもできなくなりました。

元記事を表示

Backlogのリモートリポジトリをクローン(Windows)

タイトル通り初歩的なやつでBacklogのリモートリポジトリをローカルにクローンする方法です。忘れないようにメモがてらの投稿です。

# ssh鍵を取得する
ターミナルに下記のコマンドを入力

“`console
$ ssh-keygen
“`
すると下記のような文字列が出てきます。
エンターキーやパスフレーズを入力して進みます。
パスフレーズを特に設定しない場合は何も入力しないでエンターします。

“`console
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/eguchi/.ssh/id_rsa):
Created directory ‘/Users/eguchi/.ssh’.
Enter passphrase (empty for no passphrase): <パスフレーズを入力>
Enter same passphrase again: <もう一度同じパスフレーズを入力>
Your identification has

元記事を表示

【随時更新】自分向けWindowsPCセットアップ

# 経緯
* 派遣屋の自分は、数か月で他の現場に行ったりが多く、その都度自分向けに使いやすいようにセットアップしてます。
* 毎回「どういうふうにやるんだっけ??」となって、都度都度ググってやってるので、
ここにまとめてみようと思いました。

# VSCode
## Markdownのプレビューにスタイルシートをあてる
* [参考サイト](https://habataki-blog.com/vscode-markdown-css/)
* 前提:拡張機能 Markdown Preview Enhanced がインストール済みであること。
* コマンドパレットを表示(Ctrl + Shift + P)
* 「Markdown Preview Enhanced: Customize CSS」を入力してEnter
* style.less が開かれるので、cssを設定する。
* 設定例は参考サイト参照。

## Markdownでスライドっぽいこと
*[参考サイト](https://qiita.com/tomo_makes/items/aafae4021986553ae1d8)
* 拡

元記事を表示

powershellでgit statusの表示が文字化けする場合の対処

# 参考サイト
* [git diff や git status での日本語の文字化けを防ぐ](https://maku77.github.io/git/settings/garbling.html)

# 現象
* powershellの`git status`の表示で、日本語のフォルダ名、ファイル名が文字化けする。

# 回避方法
* 下記コマンドを実行し、ore.quotepath 設定を false に設定します。

“`
git config –global core.quotepath false
“`

元記事を表示

【Git】 リモートブランチをローカル環境で取得する

この書き方で取得可能

“`
git checkout -b <ブランチ名> origin/<ブランチ名>
“`

例1

“`
git checkout -b develop origin/develop
“`

例2

“`
git checkout -b feature/hoge origin/feature/hoge
“`

————————————————–
下記のエラーが出たとき
`fatal: ‘origin/ブランチ名’ is not a commit and a branch ‘ブランチ名’ cannot be created from it`

手順①
ローカル環境にリモートの情報を取得

“`
git pull
“`

手順②
再度チェックアウトする

“`
git checkout -b <ブランチ名> origin/<ブランチ名>
“`

元記事を表示

超個人的Gitコマンドメモ(備忘録)

#よく使うgitコマンド
###ブランチを確認する
git branch

###「AAA」というブランチを作成する
git branch AAA
※作成だけで切り替えはしないため注意

###ブランチを確認する(できたか)
git branch
⇒出来ていたらこんな感じになる。
 AAA
* master

###ブランチを切り替える
git checkout AAA

念のためgit branchするとこうなる。↓
* AAA
 master

##コミットした後
###masterブランチへ移動
git checkout master

###git pullでmasterを最新に
git pull origin master

###開発用ブランチへ移動
git checkout BBB

###mergeコマンドでmaserの内容を取り込む
git merge origin master
⇒「BBB」に最新にしたばっかの「master」ブランチ情報を取り込む

元記事を表示

[Git] サイズのでかいファイルをコミットして github にpushできなくなった人が読むと幸せになれるかもしれない記事

# はじめに
gitは差分を管理したりするのに便利な一方で最初に一気にプログラムを書き上げてからfirst commitする人も結構いると思います。
このときに面倒なのが git add です。

横着して `git add .` とかすると意図しないファイルを巻き込んでいることがあります。
例えば機械学習をされている方でしたら、機械学習のモデルのファイルとかです。

本来であれば最強のオリジナル `.gitignore` を作れば解決することが多いですが、うっかりやらかしてしまうことがあるとおもいます。
そしてそれに気づいたとき、既に大量にコミットをしていて死にたくなることがあると思います。

そういう時に事故は起こるわけです。

# push できない!
githubでは1ファイルあたりの制限があり、100MB以上のファイルをpushすることができません。
じゃあそのファイルを `.gitignore` に追加すればええか!となるのですが、あとから追加しても時既に遅し、`.gitignore` に追加して追跡対象外にした、つまり「ファイルを削除した」という履歴が残ってしまいます。

元記事を表示

git commit messageは命令形、小文字始まりで書く(git標準)

# 命令形、小文字始まりで書く

https://git.kernel.org/pub/scm/git/git.git/tree/Documentation/SubmittingPatches?id=HEAD

“`
[[imperative-mood]]
Describe your changes in imperative mood, e.g. “make xyzzy do frotz”
instead of “[This patch] makes xyzzy do frotz” or “[I] changed xyzzy
to do frotz”, as if you are giving orders to the codebase to change
its behavior. Try to make sure your explanation can be understood
without external resources. Instead of giving a URL to a mailing list
archive, summarize the rele

元記事を表示

gh+fzf+ghqを使ってラクにgit cloneができるようにする

“`~/.zshrc
function gclone(){
local repo
repo=$(gh repos $(echo “$1”) | fzf –layout=reverse –height 100% –prompt “repositories>”)
ghq get -p $(echo “$repo”)
zle accept-line
}
“`
ghとfzfを使ってインクリメンタルにリポジトリ名を取得した後に、ghqを使ってcloneしてくる。

これで、`gclone `したあとにリポジトリ名を指定すると、cloneできる。

元記事を表示

GitHub リモートリポジトリ【基礎】

#【GitHub リモートリポジトリ】

山浦清透さん いつもありがとうございます。
[Git:もう怖くないGit!チーム開発で必要なGitを完全マスター](https://www.udemy.com/course/unscared_git/)

##リモートリポジトリ

リモートリポジトリとは、オンライン上にあるリポジトリ(GitHub)
これからの知識は、実際の開発現場でも必須。

##リモートリポジトリを新規追加

リモートリポジトリを新規追加する。
 → git remote add origin < GitHubのURL > 

 ※originというショートカットにGitHubのURLのリポジトリを登録している。

##リモートリポジトリへ送信

ローカルリポジトリからリモートリポジトリにアップする。
 → git push < リモートリポジトリ名> < ブランチ名 > 

 ※リモートリポジトリ名を毎回入力するのは面倒だから、originを使う。

##リモートリポジトリを表示

設定しているリモートリポジトリの情報を表示する。
 → git remote -v (-v

元記事を表示

conda仮想環境をWindows版VSCodeのGitBashで運用する方法

## はじめに

[こちらの質問](https://qiita.com/ryoheiszk/questions/d650f481e2b05ed64ed0)が解決しましたので、別途記事として起こしておくことにしました。

具体的なエラーの内容等はそちらをご確認ください。

スペシャルサンクス: @Ryo-Todaka

## 問題の要約

Windows版VSCode内統合ターミナルでGitBashを利用しているが、Anacondaの仮想環境を利用できませんでした。
仕方がないので、仮想環境を利用したい場合のみ既定ターミナルをcmdにしていましたが不便でした。

## 解決


こちらの回答を試しました。

まず、

“`bash:GitBash-in-VSCode
. /c/tools/Anaconda3/etc/profile.d/conda.sh
“`

とすると、conda

元記事を表示

【Git】知らなかったGitコマンド・grepの使い方(備忘録)

#プログラミング勉強日記
2021年2月15日
基本的なgitの操作しかしらなかったので、今日知った便利なコマンドをまとめる。

#Gitコマンド一覧

`$ history`:コマンドの履歴を確認。
`$ git log`:コミット履歴を確認。コミットをコミットメッセージの一覧の形で表示する。
`$ git log -1`:最近のログを1件だけ出力する。
`$ git log –since=2021-2-1`:2021年2月1日以降のログを出力する。
`$ git log master`:ブランチ指定してログを出力する。
`$ git log -p ファイルパス/ファイル名`:特定のファイルを指定してログを出力する。
`$ git diff –name-only`:変更点を表示するときに、変更があったファイルのパスだけを表示。

#grepとは

> grepは、UNIXおよびUnixオペレーティングシステムにおけるコマンド。テキストファイル中から、正規表現に一致する行を検索して出力する。

[Wikipedia grep](https://ja.wikipedia.org/wi

元記事を表示

TortoiseGitでSVNリポジトリを履歴を含めてGitに移行する

過去にSVNでソース管理していたシステムの改修が発生したタイミングでGitへ移行したので手順をまとめてみました。
開発PCは当時から新しくなっているのでSVN関連のアプリなんてないよ!と思っていましたが、移行にはGit系アプリだけでいいんです!!

## 実施した環境
– PC:Windows10

– SVN:VisualSVN
– Git:GutBucket

※SVN,Gitともに社内オンプレサーバにあり

## 準備
##### 1.Git for Windowsのインストール
下記からダウンロードしてインストール。
[Git for Windows](https://gitforwindows.org/,”Git for Windows”)
##### 2.TortoiseGitのインストール
下記からダウンロードしてインストール。
もし日本語化するなら日本語のLanguage Packも併せてダウンロードしてインストール
[TortoiseGit](https://gitforwindows.org/,”Git for Windows”)
##### 3.移行元SVNのリ

元記事を表示

【GitBash入門】resetとrevertの使い分け

## 使い分けについて
– resetはリモートリポジトリにPushしていない状態。ローカルに閉じている場合にのみ使って良し(コミットログ自体が消える。なかったことに!)
– revertは既にリモートリポジトリにPushしている場合に使う。打消しコミットをあえて残す場合もOK(打消しコミットだからコミットログは残る!)

## コマンド一例

“`:git-command(reset)
$ git reset –hard e33bd8e ← このコマンドを打つ(どのコミットIDまで戻すのかを指定)
HEAD is now at e33bd8e チェリーピック1

※hardだと編集したファイルも指定のコミットIDの状態に戻る
※mixedだと編集した内容はそのまま残る。インデックスからは外れる。
※softだと編集した内容はそのまま残る。インデックスは外れない。
“`

“`:git-command
$ git revert 9a13cb8 ← このコマンドを打つ(どのコミットIDを打ち消すのかを指定)
[develop 201230e] Revert “revert tes

元記事を表示

【Git】git addをする理由について

#はじめに
gitはコミットを残すことによって、projectの履歴管理ができる素晴らしいシステムです。コミットをするためには先ずgit addというコマンドを使ってステージングする必要があります。何故、すぐに変更履歴をコミットしないでgit addでステージングする必要があるかについてずっと疑問だったので、その理由について調べてみました。

#目次
– gitの構成
– ワークツリー(working Tree)とは
– ステージング(staging)とは
– リポジトリ(repository)とは
– git addをする理由
– 参考サイト

# gitの構成
gitは大きく3つの段階に構成されています。ワークツリー、ステージ、リポジトリ。図で表すと以下のようになります。ワークツリーからリポジトリに段階が進むに連れて、星の形が出来ていく感じです。ワークツリーからステージに到達するには「git add」コマンドが、ステージからリポジトリに行くには「git commit」コマンドが必要になります。
![スクリーンショット 2021-02-14 21.22.14.png](https:/

元記事を表示

OTHERカテゴリの最新記事