- 投稿日:2020-05-14T23:29:33+09:00
Gitコマンドで半角スペースを認識させる
はじめに
Gitコマンドでは、ディレクトリやユーザー名の入力で
半角スペースが入ると意図しない結果になることがあります。特に、コミット時に使用するユーザー名の設定では
姓名を半角スペースで空ける方が大半だと思います。
初めに設定するので初心者が通る箇所です。
基本的なことですが、ここで覚えておきましょう。半角スペースを空けて上手くいかない方が
見てると思うので答えを先にお伝えします。
"\"を使ってエスケープしてあげることで解決します。実際に書いてみる
ユーザー設定(正解)
$ git config --global user.name QIITA\ TAROユーザー設定結果を確認(正解)
$ git config user.name QIITA TAROユーザー設定(誤り)
$ git config --global user.name QIITA TAROユーザー設定結果を確認(誤り)
半角スペース以降が認識されずに消えて設定されます。。$ git config user.name QIITA最後に
エラー等が出ないので、コミットまでしてから
気付くなんてことになるかもしれません。
設定後はgit config --list等で確認する癖を付けた方が良いですね。
- 投稿日:2020-05-14T23:21:32+09:00
Git/GitHub(CodeCommit)超最低限のコマンドメモ
記事の目的
GitやGitHub(CodeCommit)を初めて使う人向けの超最低限のコマンドのメモです。
チーム開発で使用をするときにかなり重要であるし、知っておかないとまずい要素でもあります。流れ
だいたい以下の流れでチーム開発します。
- 作業ブランチ作成
- 作業する
- ステージング
- ローカルにコミット
- リモートにプッシュ
- プルリクエスト
- 承認
- リモートのmasterにマージ
- ローカルのmasterにプル
- ローカルの作業ブランチを削除
作業ブランチ作成
以下コマンドで現在のブランチから新しいブランチが作られる。
基本masterブランチを最新にしmasterブランチから新しいブランチを作るのがよいと思う。git checkout -b <作業ブランチ名>作業する
ソースを編集する。
ステージング
作業完了したらステージに乗せる。
git add .ローカルにコミット
ローカルにコミットする。
リモートにプッシュするまでに何回コミットしても大丈夫です。git commit -m "コミットコメント"リモートにプッシュ
リモートにプッシュする。
git push origin <作業ブランチ名>プルリクエスト
GitHub(CodeCommit)上でプルリクエストする。
注意点は何に何をプルリクエストするかを間違えないこと。
ここでは[master←作業ブランチ]になります。承認
承認をもらう。
承認ルールをつけることができます。最低でも何人とかこの人の承認は必ず必要とか。リモートのmasterにマージ
承認がもらえれば、リモートのmasterにマージする。
ついでにリモートの作業ブランチを削除する。ローカルのmasterにプル
ローカルのmasterにプルする。
git checkout master git pull origin masterローカルの作業ブランチを削除
ローカルの作業ブランチも不要になるので削除
git branch -d 作業ブランチ名まとめ
チーム開発する上での超最低限のコマンドをまとめました。
この他にもコンフリクトとか超怖いことが起きると思いますが、とりあえず最低限の使い方はこれくらい知っていれば大丈夫かなと思います。(ダメかも・・・)間違っていたり、これはないとだめなやつとかあればコメントください。
- 投稿日:2020-05-14T19:18:05+09:00
Git Submoduleを自動でmasterに保つ
簡単に言うと自動更新できるようになります。この術は書かないといけないという使命感に駆られました。
Dependabotを使います。
コーディングする必要は一切ないです!
一文字も書きません。楽です。
テスト用に作ったRepo:koumaza/subm-test準備
- GithubにてRepoを作りClone
git submodule add git@github.com:
user
/
repo
.git
git commit -m 'Add submodule' && git push
Dependabotの導入
- dependabotから
Signin
>Github認証
- Git Submoduleを選択して追加
- 右上からアカウントの設定に行き、
Merge options
のAllow auto-merging to be enabled on projects
に✅- Repoの設定に行き
Automatic PR merging
の下の項目を二つともAll updates
にするテスト
注意点ですが、CIを使ってないとAutomergeが動作しません。私はSiderCIを使ってます。
SubmoduleのRepoでなんらかのCommitをしてDependabotでBumpを押します。
そしてPRが出てきてCIが通ったら自動でMergeされます。つまり、SubmoduleのRepoに変更が加わると翌日に自動でマージされます。
それか、手動でもできるしね。
- 投稿日:2020-05-14T18:56:17+09:00
100日後にエンジニアになるキミ - 55日目 - Git - Gitの使い方
昨日までのはこちら
100日後にエンジニアになるキミ - 42日目 - クラウド - クラウドサービスについて
100日後にエンジニアになるキミ - 36日目 - データベース - データベースについて
100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1
100日後にエンジニアになるキミ - 18日目 - Javascript - JavaScriptの基礎1
100日後にエンジニアになるキミ - 14日目 - CSS - CSSの基礎1
100日後にエンジニアになるキミ - 6日目 - HTML - HTMLの基礎1
100日後にエンジニアになるキミ - 53日目 - Git - Gitについて
最近の開発ではGitが欠かせません。
本日はGitの使い方についてです。Gitとは
Git(ギット)はプログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。
ソフトウェアになるので誰でも使うことができますが
PCやサーバーにインストールすることになります。概念や用語については前回分をご参照ください。
100日後にエンジニアになるキミ - 53日目 - Git - Gitについて
Gitの使い方
まずはじめにちゃんとコマンドが使えるかどうかは確認しておきましょう。
バージョンコマンドを使えるかどうか見ます。
git --version
git version 2.21.1 (Apple Git-122.3)
コマンドが使えるならバージョン情報が出てきます。
ここでコマンドが使えなければGit
のインストールを行いましょう。100日後にエンジニアになるキミ - 54日目 - Git - Gitの導入方法
リポジトリの作成(init)
初めは何もない状態です。
リポジトリを作成してみましょう。リポジトリ作成は
init
コマンドで行えます。コマンドはコンソールなどで行いますが、どこに作るのかは
現在いるディレクトリに作成しますので、cd
コマンドなどで
リポジトリを作りたいディレクトリにあらかじめ移動しておいてから
コマンドを実行してみましょう。cd xxxxxx/xxx/ git init
Initialized empty Git repository in /Users/xxxxxx/xxx/.git/
上記のようなメッセージが出たら、リポジトリ作成成功です。
リポジトリは
.git
という名前のディレクトリとなり
その中に管理用のファイルを保存します。
.git
の中をみてみましょう。ls -ls .git/
total 24
8 -rw-r--r-- 1 gm3293 staff 23 5 14 17:09 HEAD
8 -rw-r--r-- 1 gm3293 staff 137 5 14 17:09 config
8 -rw-r--r-- 1 gm3293 staff 73 5 14 17:09 description
0 drwxr-xr-x 13 gm3293 staff 416 5 14 17:09 hooks
0 drwxr-xr-x 3 gm3293 staff 96 5 14 17:09 info
0 drwxr-xr-x 4 gm3293 staff 128 5 14 17:09 objects
0 drwxr-xr-x 4 gm3293 staff 128 5 14 17:09 refs管理ファイルが見えればOKです。
このあとの流れとしてはディレクトリの中にファイルを作成し
git add
でインデックスにファイルを追加し
git commit
でリポジトリにコミットします。リポジトリの状態を確認する(status)
リポジトリの状態は
status
コマンドで確認できます。試しに確認してみましょう。
git statusOn branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
リポジトリを作ったばかりなので特に何もないですね。
インデックスにファイルを追加する(add)
それではここにファイルを作って、それをインデックスに追加してみましょう。
sample.html<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>HTML5サンプルだよん</title> </head> <body> <p>HTML5の本文</p> </body> </html>テキストエディターやviなどでこれを作って置いておきます。
git add ファイル名
でファイルを追加することができます。
追加できたらもう一度status
を見てみましょう。git add sample.html git statusOn branch master
No commits yet
Changes to be committed:
(use "git rm --cached ..." to unstage)new file: sample.html
先ほど
add
コマンドで追加したファイルが出てきていますね。
これでリポジトリ管理するファイルをインデックス追加することができました。ファイルの変更内容等をインデックスに追加することを
ステージング
と表現することがあります。既にステージングの対象になっている内容を
git diff --cached
で確認できます。
git add .
ではカレントディレクトリにある
全てのファイルを追加の対象とすることができます。リポジトリに登録を行う(commit)
インデックスへの追加が終わったら次はリポジトリに登録を行います。
リポジトリへの登録は
commit
コマンドで行います。
登録時にはメッセージ(コメントみたいなもの)が必要になるので
併せてコマンドで送り込みます。
git commit -m ‘メッセージ内容’
git commit -m 'first commit'[master (root-commit) 63c0e3e] first commit
Committer: XXXXXXXX XXXXXXXX@XXXXXXXX.local
your configuration file:git config --global --edit
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
1 file changed, 10 insertions(+)
create mode 100644 sample.html先ほど追加したファイルがコミットされたというメッセージが出れば
コミット成功です。ここまでの操作で
ローカルリポジトリ
への登録が終了という形になります。
status
で確認してみるとgit statusOn branch master
nothing to commit, working tree clean未登録のものは残っていないようですね。
リポジトリ管理下のファイル一覧(ls-files)
コミットされたファイルの一覧を取得してみましょう。
ls-files
コマンドで取得できます。git ls-filessample.html
まとめ
GitやGitHubは現在の開発では欠かすことができない物です。
Gitをインストールして使えるようにしておきましょう。まず最初はリポジトリの作り方とローカルリポジトリへの登録方法を覚えておきましょう。
君がエンジニアになるまであと45日
作者の情報
乙pyのHP:
http://www.otupy.net/Youtube:
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMwTwitter:
https://twitter.com/otupython
- 投稿日:2020-05-14T16:54:39+09:00
GitHub のタグを削除する方法
GitHub の画面からタグ削除できないが、コマンドからは削除できます。
:
をrefs
前に付くことで、タグを削除できる、ちょっとややこしい。。。リモートタグ削除git push origin :refs/tags/v1.0.0リモートタグ追加git push origin refs/tags/v1.0.0
- 投稿日:2020-05-14T13:15:04+09:00
別のアカウントでgit cloneする
- 投稿日:2020-05-14T11:52:55+09:00
特定の文字列が含まれるファイルのみgit addする
以下のコマンドで、カレントディレクトリ以下にある TargetFileName がファイル名に含まれるものを
git add
できます。git ls-files . | grep 'TargetFileName' | xargs git add// Example
/DirectoryA/TargetFileName/Text.txt
/TargetFileName/Text.txt
/DirectoryB/TargetFileName.txt
各コマンド解説
git ls-files [path]
[path] で指定されたディレクトリ以下のファイル一覧を取得します。
grep [string]
[string] が含まれる行のみをフィルターします。
xargs [command...]
パイプより前の実行結果を [command...] に渡します。