20200514のGitに関する記事は7件です。

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等で確認する癖を付けた方が良いですね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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 作業ブランチ名

まとめ

チーム開発する上での超最低限のコマンドをまとめました。
この他にもコンフリクトとか超怖いことが起きると思いますが、とりあえず最低限の使い方はこれくらい知っていれば大丈夫かなと思います。(ダメかも・・・)

間違っていたり、これはないとだめなやつとかあればコメントください。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Git Submoduleを自動でmasterに保つ

簡単に言うと自動更新できるようになります。この術は書かないといけないという使命感に駆られました。
Dependabotを使います。
コーディングする必要は一切ないです!
一文字も書きません。楽です。
テスト用に作ったRepo:koumaza/subm-test

準備

  1. GithubにてRepoを作りClone
  2. git submodule add git@github.com:user/repo.git
  3. git commit -m 'Add submodule' && git push

Dependabotの導入

  1. dependabotからSignin > Github認証
  2. Git Submoduleを選択して追加
  3. 右上からアカウントの設定に行き、Merge optionsAllow auto-merging to be enabled on projectsに✅
  4. Repoの設定に行きAutomatic PR mergingの下の項目を二つともAll updatesにする

テスト

注意点ですが、CIを使ってないとAutomergeが動作しません。私はSiderCIを使ってます。

SubmoduleのRepoでなんらかのCommitをしてDependabotでBumpを押します。
そしてPRが出てきてCIが通ったら自動でMergeされます。

つまり、SubmoduleのRepoに変更が加わると翌日に自動でマージされます。
それか、手動でもできるしね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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 status

On 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 status

On 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 status

On branch master
nothing to commit, working tree clean

未登録のものは残っていないようですね。

リポジトリ管理下のファイル一覧(ls-files)

コミットされたファイルの一覧を取得してみましょう。
ls-filesコマンドで取得できます。

git ls-files

sample.html

まとめ

GitやGitHubは現在の開発では欠かすことができない物です。
Gitをインストールして使えるようにしておきましょう。

まず最初はリポジトリの作り方とローカルリポジトリへの登録方法を覚えておきましょう。

君がエンジニアになるまであと45日

作者の情報

乙pyのHP:
http://www.otupy.net/

Youtube:
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter:
https://twitter.com/otupython

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

GitHub のタグを削除する方法

GitHub の画面からタグ削除できないが、コマンドからは削除できます。
:refs 前に付くことで、タグを削除できる、ちょっとややこしい。。。

リモートタグ削除
git push origin :refs/tags/v1.0.0
リモートタグ追加
git push origin refs/tags/v1.0.0
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

別のアカウントでgit cloneする

既出だと思いますが、自分用にメモ残します。

基本構文

git clone https://username@github.com/username/repository.git

別のアカウントでgit clone

username ... git の username
password ... git の pass

git clone https://username:password@github.com/username/repository.git
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

特定の文字列が含まれるファイルのみ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...] に渡します。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む