今さら聞けないGit 2019年12月18日

今さら聞けないGit 2019年12月18日

Gitにファイルを追加し忘れる対策がほしい

# なぜファイルを追加し忘れるのか

原因だけは大体分かってますが、適切な対応策が今のところありません。

## まず状況を確認

作業フローとして
1. クローン
2. ブランチを切る
3. 試しにビルドする
4. 新しいファイルを作る
5. ファイルを各所に登録する
6. ビルドする
7. コミットする
8. マージしてプッシュする or ブランチごとプッシュしてからマージしてもらう

こんなところだと思います。

## 追加し忘れたとき
### プルした人からクレームがきて気付く
困ったものです。いえ、困ったやつがいたものです。
### 急いで追加・コミット・プッシュする
ビルドして動作確認出来ているときはこれで解決できます。しかし迷惑をかけた事実は消えません…

## 原因を紐解く
5.ファイルを各所に登録する
このときにGit追加処理をしていないから、そのまま忘れるわけです。

### なぜすぐに追加処理をしないのか
心理的な問題もあるのですが、類似のファイルをコピーして修正しているときに多く発生している気がします。
つまりファイルをコピーして生成した直後は非常に胡散臭い

元記事を表示

hub コマンドが補完されなくなった件について

# 結論

[hub](https://github.com/github/hub) のaliasに一行追加する。

“`bash
alias git=”hub” # eval “$(hub alias -s)” と等価
alias __git=”hub” # ここに追加する。
“`

### 環境確認

“`bash
$ hub –version
git version 2.24.0
hub version 2.13.0

$ bash –version
GNU bash, バージョン 5.0.11(1)-release (x86_64-apple-darwin18.6.0)
“`

### 参考

Issue
https://github.com/github/hub/issues/1792#issuecomment-518227676

元記事を表示

【初心者向け】とにかくGitHubでフォークしたい(&変更を反映したい)

# フォークとは
他のユーザーがGitHubに公開しているリポジトリをコピーして、自分のリポジトリに新規作成します。
# フォークする
フォークは、自分が開発に携わったアプリを自分の手元に残し、成果物として評価を受けるためにも重要です。
紐付けを行えば、フォーク元のリポジトリに対してプルリクエストを送ることもでき、より安全に作業を行うために活用できるのですが、ここではフォークしたリポジトリでの作業を前提としない場合(あくまで成果物として残しておきたい場合)のお手軽な方法に限定してまとめます。

1. フォークしたいリポジトリのページにアクセスする。

2. ページ右上の`Fork`をクリックする。
![GitHub1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410392/b50f2dfb-ce3c-27db-dad0-914a95a06ade.png)

以上で`[自分のアカウント名]/[フォークしたリポジトリ名]`というかたちで自分のリポジトリに取り込むことができます。

# (自分のリポジトリ

元記事を表示

ローカルブランチがプッシュできない問題の解決

#はじめに

ローカルブランチがプッシュできない問題があったので、他の人たちや、自分の備忘録のために書いておきます。

#エラー

“`
The Remote branch ” (Local branch = ‘sprints/Mycompany_sprint-1’) is invalid. Ref names must follow git ref-format rules: https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html Completed with errors, see above.
“`

だったり

“`
The リモートブランチ ” (ローカルブランチ = ‘gnome’) is invalid. Ref names must follow git ref-format rules:
“`

だったり、ブランチをプッシュするときにエラーが起きます。

#解決方法

こちらのページを参考にしました。

https://stackoverflow.com/q

元記事を表示

【Git】GitLabで1人コードレビューごっこしてみた③(レビューからマージまで)

前回の続きです。
【前回】:[【Git】GitLabで1人コードレビューごっこしてみた②(branch作成からMergeRequestまで)](https://qiita.com/OKsaiyowa/items/5b21074c33528046d08d)

[プルリクエストを使った開発プロセス](https://backlog.com/ja/git-tutorial/pull-request/03/)

`>>>引用`

>①[ 開発者 ] 作業対象のソースを clone または pull します。
②[ 開発者 ] 作業用のブランチを作成します。
③[ 開発者 ] 機能追加、改修といった開発作業を行います。
④[ 開発者 ] 作業が完了したら push します。
⑤[ 開発者 ] プルリクエストを作成します。
⑥[ レビュー・マージ担当者 ] 通知されたプルリクエストから変更を確認しレビューします。
⑦[ レビュー・マージ担当者 ] レビュー結果を判断し、必要ならば開発者にフィードバックします。
⑧[ レビュー・マージ担当者 ] レビューの結果、問題がない場合はマージします。
⑨[

元記事を表示

【heroku】デプロイの方法、appの削除

・設定箇所
1 Gemfile
2 config/datebase.yml
3  config/environments/production.rb
4  config/routes.rb

1 ・Gemfileのgem ‘sqllite3’を group :development, :test doへ移動

・Gemfileに
  group :production do
  gem ‘pg’, ‘~>0.18.4’
  end  を追加

 ・bundle install –without productionをコンソールで実行する

2 ・config/datebase.ymlのproductionの箇所を
  production:
  <<: *default   adapter: postgresql   encoding: unicode   に変更 3 config/environments/production.rbのconfig.assets.compile = false をtrueに変更 4 rootがあってるか確認 .gitの設定

元記事を表示

「git stash save “コメント”」のコメントを後から変えたい

“`git
git stash save “コメント”
“`
としたときの「コメント」を後から変えたい時。
該当のstashを一度popして、再度stash…とするのが面倒な時は

“`sh
.git/refs/stash
“`

を開いて変更したいコメントを直接編集。
**自己責任でお願いします**

元記事を表示

Gitでブランチ切って開発してマージするまでの流れをざっくり説明

#背景
gitでの共同開発の流れを調べるときに、詳しく説明してくれるサイトが多く最初は助かったのですが、gitコマンドを確認したいだけの時に余計な説明が多いと確認がめんどくさいので最小限の説明ですぐにgitコマンドが確認できるようになったら良いと思ったから。

###masterブランチから作業用ブランチを切る

“`
#新規ブランチ作成
$ git branch new_baranch
#作成したブランチに切り替え
$ git checkout new_baranch
“`
作業する、、、

###作業完了後、リモートリポジトリにプッシュ

“`
$ git add .
$ git commit -m “作業完了”
#リモートリポジトリにプッシュする
$ git push origin new_baranch
“`

###リモートリポジトリでマージ
githubなどのリモートリポジトリでプルリクエストをして問題が無ければマージして余計なブランチは削除する

###ローカルとリモートを同期

“`
#branchをマスターに変更
$ git checkout master

元記事を表示

ブランチごとに内容をわけたい

# 経緯
僕はそこそこの規模の開発をするとき必ず今後の開発予定などを未来の自分向けにメモしておくmemo.txtを作成する。
この内容はリモートで管理する必要はなく、gitignoreしてもいい。
しかし、僕は複数のPCで作業することがあり、リモートを介して内容の同期を行うため、gitignoreしてしまうとmemo.txtの内容を共有できない。
一方で、ほかの開発者などがいる場合や不特定多数に公開している場合、masterブランチに自分向けのメモが転がっているのはよくない。
そこで、ブランチごとにmemo.txtの内容を別々にする方法を調べてみた。

# 使う機能
ブランチをマージするときに無視してもらえればいいので、競合が起きた時に自動的にどちらか一方のものを選択するGitの機能を使う。
以下、その設定方法を記した。

# config
gitで管理しているフォルダ(以下作業フォルダ)には隠しフォルダ.gitがあり、その中にconfigファイルがある。
この中に以下の内容を追加する。
“`[merge “ours”]
name = “K

元記事を表示

エンジニア歴5ヶ月の私がここまでよく使っているGitコマンド集

まずはここから。

“`
$ git clone クローンしたいリポジトリのURL
“`

git initする機会はこれまでほとんどありませんでしたので、基本的にここがスタート地点になってます。(まだ、2プロジェクト目くらいですが。。)

“`
$ git branch
* develop
master
“`

“`
$ git branch -a
* develop
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
“`

現在どのブランチにいるかを確認するために使用します。

-a オプションでリモートのブランチも見れます。

このコマンドはかなり多用してます。

“`
$ git add ファイルパス
“`

“`
$ git add .
“`

変更があったファイルをステージングエリアに追加にするコマンドです。言い換えると、変更があったファイルをコミットできる状態にするコマンドということになります。

なのでいくらローカルでファイルを変更しよう

元記事を表示

日本語ファイル名を含む Mercurial リポジトリの Git リポジトリ移行

Bitbucket が Mercurial のサポートをやめるので、もろもろの Mercurial リポジトリを Git リポジトリへ変換しています。
ただ、convert だと日本語ファイル名を含む Mercurial リポジトリを Git リポジトリに移行するとファイル名が文字化けするので、そうならないように以下の手順で移行しました。 Thanks [@shuichigoto](https://twitter.com/shunichigoto)
MSYS をインストール済みで、MSYS のコンソールを起動するものとします。
MSYS コンソール起動後、以下のコマンドを実行。

“`
pacman -S python2 python2-pip
pacman -S msys/libcrypt-devel
pip2 install mercurial
mkdir hg2git
cd hg2git
git clone https://github.com/frej/fast-export
mkdir togit
cd togit
git init
../fast-export/hg-fa

元記事を表示

gitで特定のファイルを直接コミットする。addなしで

`git commit .gitignore` のように、`git commit ファイル名`とすることで、
addによるステージングなしで直接コミットできます。
設定ファイルを少し書き換えたときに便利です。

gitのmanに記載がありますが気付きませんでした。

元記事を表示

Git インデックスへのステージングを取り消したいとき

# 目的

– Gitでインデックスにステージングしたファイルのステージングを解除する方法を先輩に教えてもらったので忘れないようにまとめる。

# 実施方法の例(本方法はGitのバージョン依存あり)

– コマンド`$git add`を実行したあとに下記のコマンドを実行して特定のファイルのステージングを取り消す。

“`terminal
$ git rm –cached ファイル名
“`

# より具体的な例

– ファイルtest.mdをコマンド`$ git add test.md`を実行してステージングを行う。
– test.mdの内容に追記したい内容を見つけたのでステージングを取り消す。
– 前述の一連の作業を下記に記載する。

“`terminal
$ git add test.md
$ git rm –cached test.md
“`

# 実は。。。

– この方法実はコマンド`$ git status`を実行した時に「このコマンドを実行するとステージングを取り消せます。」と書いてある。
– 先輩には「コ

元記事を表示

GitHub APIを使ってコミットハッシュからPR名やURLを取得する

# パブリックリポジトリの場合

“`console
curl -H “Accept: application/vnd.github.cloak-preview” https://api.github.com/search/issues?q=is:pr+repo:(オーナー名)/(リポジトリ名)+sha:(コミットハッシュ)
“`

URIは`…/search/issues`ですが、クエリストリングに`is:pr`とすることで、PRの情報を取得できるところがポイントです。

例えば、

– [laravel/laravel](https://github.com/laravel/laravel)

– [DRY up path]( https://github.com/laravel/laravel/pull/5173/commits/6f615b425c2647ed2c19c9a4e8f0513591a743dc)

というコミットは、コミットハッシュ`6f615b425c2647ed2c19c9a4e8f0513591a743dc`ですが、

“`console
c

元記事を表示

Git

この記事では、gitに関する基本的な知識をまとめています。

##Gitとは
Gitはテキストファイルなどのバージョン管理を行うためのソフトウェアです。バージョン管理とは、ファイルの変更内容や変更履歴を保持しておいて、あとから古い状態に切り戻したりできるようにするためのものです。プログラムコードの管理がしやすいため、チームで開発をする際にGitは欠かせないと言えるでしょう。

##バージョン管理システムの違い
バージョン管理システム自体は他にもいろいろあります。SubversionがGit以外では有名ですが、SubversionとGitは、管理の方法がだいぶ違います。ここでは管理方法について詳しく説明していきます。

**Git**
スクリーンショット 2019-12-16 16.07.08.png

Gitにはサ

元記事を表示

【Git】たまった追跡外ファイルを消去する方法

“`console:console
$ git clean -f
“`

元記事を表示

GitHub organization内repositoriesのRubyやGemのversionを一覧する

# TL;DR

全部`git clone`してきてlocalで`git grep`, `grep`する。

## Shallow clone

shallow clone into ~/tmp/packsaddle20191210

“`zsh
mkdir -p ~/tmp/packsaddle20191210
cd ~/tmp/packsaddle20191210
github-repos -org packsaddle -z | xargs -0 -P4 -I {} git clone {} –depth 1
“`

[Git clone repositories in a GitHub organization](https://dev.to/sanemat/git-clone-repositories-in-a-github-organization-gh8)
[sanemat/go-githubrepos](https://github.com/sanemat/go-githubrepos)

## Check ruby version

“`zsh
for dir

元記事を表示

gitignoreのホワイトリストの書き方

gitignoreのあれ

gitignoreのあの逆を書きたいんだよね!

(いや意味わからん)

と思った人。僕も自分で言っておいて何を言っているかわかりませんでした。

つまり

index.html
style.css
script.js

の3つのファイルがあってgitignoreならstyle.cssだけをignoreできるんです。

でも逆にstyle.css以外をignoreしたいってなった時は今回であればindex.html、script.jsの2つをignoreしますよね?

3つのファイルならいいんですけどこれが100個あったら死ぬほど面倒じゃないですか?ignoreの逆書きたい!ってなりますよね。

今回の事例としてはwordpressの構築をしているときに遭遇しました。

いつもならthemesの中の自作テーマの中にgit入れればいい感じでした。それ以外ほとんど触りませんしね。バージョン管理する必要がありません。

が、今回ルートフォルダにwpというフォルダがあり、その中にwordrpressが入っていました。

そしてその階層にcss,jsが置いてあったの

元記事を表示

.gitignore_global を活用してメモやスクリプトを整理しよう

.gitignore_global を活用してメモやスクリプトを整理しよう

[Git Advent Calendar 2019](https://qiita.com/advent-calendar/2019/git) の 16 日目の記事でございます

## メモ、あるよね
プロジェクトに関するメモとかさ、開発環境立ち上げるコマンドのメモとかさ、デプロイ方法のメモとかさ、動作確認のやり方のメモとかさ、特定の内容を確認する SQL のクエリメモとかさ、とにかくなんかあるでしょ?

ない?
ない人はいーや、はいメリークリスマースおつかれさまでしたー

メモある人さ、どこにメモしてる?

色々工夫はあると思うんだけど、今日は一風変わった方法を紹介するよ

## メモ、散らかるよね
チームを移動したり複数プロダクトを保守したりすると、当たり前だけどプロダクトごとに違う内容をメモしないといけないよね

`~/Documents/memo`とかに置いといた巨大な`メモ.txt`から今欲しい内容だけ目で探して、例えば長いコマンドなんかを手でぺ〜っと選択・コピーしてターミナルに戻って貼り付け、な

元記事を表示

jenkinsとgitつなげる

https://open-groove.net/jenkins/tomcat-maven-git/

# ls -l /usr/local/jenkins/plugins 以下に
・git.hpi
・git-client.hpi
・scm-api.hpi

があるのを確認

# プロジェクト 設定

ソースコードの管理

✓ Git
・Repository URL
http://192.168.10.xx:8080/gitbucket/git/root/test.git
(gitbucketで設定されたURL)
・Credentials なし
以下デフォルト

# 手動で実行

######## 以下動かない? ###########
/root/test/.git/hooks
ができるので

vi post-receive
*****
#!/bin/bash

curl -X POST http://192.168.10.xx:8090/jobs/app-test-job/builds
*****

# 参考
https://ics.media/entry/3283
J

元記事を表示

OTHERカテゴリの最新記事