20200517のGitに関する記事は12件です。

GitHub Desktopに頼らずGitを使う

はじめに

GitHub Desktopに頼りすぎて、ターミナルからのGitの操作方法を失念しつつある人のための記事です。
Git自体をほぼ使ったことが無い人は私の過去記事を読んでいただき、それでも不明点があれば他記事も参考にしてみてください。

・私が過去に書いた記事
Githubでのプログラム修正の流れ その1
Githubでのプログラム修正の流れ その2
Githubでのプログラム修正の流れ その3

リモートリポジトリを作る

まずはGitHubにログインしましょう。
そうすると画面左側にNEWボタンがあるのでクリックします。
スクリーンショット 2020-05-17 21.43.30.png

リポジトリ名を入力し、Create repositoryボタンをクリックします。
これでリモートリポジトリは完成です。
この時リポジトリを非公開にしたい場合は、画面中央部の設定からPublicではなくPlivateにしておきましょう。
スクリーンショット 2020-05-17 21.35.51.png

リモートリポジトリの作成が終わったら以下のような画面に遷移しますので、赤枠で囲ったボタンを押下しURLをコピーします。
スクリーンショット 2020-05-17 21.48.14.png

ローカルでの作業

ここからはローカルでの作業です。今回の記事用に新しくリポジトリを作ります。
まずはディレクトリを作成。

% mkdir test_app

作成したディレクトリに移動。

% cd test_app

以下のコマンドを実行することでtest_appをGitで管理できるようにします。

% git init
Initialized empty Git repository in /Users/username/projects/test_app/.git/

続いてtouchコマンドでテスト用のファイルを作ります。

% touch test.html

それでは、statusコマンドで変更や追加があったファイルを確認してみましょう。
先ほど作成したtest.htmlが表示されているので問題なさそうです。

% git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    test.html

addコマンドでtest.htmlをインデックス※に追加します。
※インデックスとはリモートリポジトリに反映するファイルを置いておく場所のことです。これにより、コミットしたいファイルごとにインデックスに追加してリモートリポジトリに反映できるようになります。
インデックスの概念が無かった場合を考えると、A機能とB機能を追加した際にワーキングツリーから2つの機能の修正がリモートリポジトリに反映されることなります。レビュアーの負担や現場のルールなどで1コミットにつき1機能にすることにした場合、インデックスという場所にコミットするファイルを指定して置いておいたら便利なのです。

 % git add test.html

ではコミットしましょう。-mオプションをつけることでコメントを記述できます。

% git commit -m "test commit"

ローカルリポジトリとリモートリポジトリを紐づける

前述したリモートリポジトリの作成の際に、リポジトリのURLが発行されていたと思います。まずはそれをクリップボードにコピーしましょう。
スクリーンショット 2020-05-17 21.48.14.png
以下のコマンドをローカルリポジトリ内で実行すれば、ローカルリポジトリと紐づけるリモートリポジトリを設定できます。

% git remote add origin コピーしたURL

ローカルリポジトリの修正内容をリモートリポジトリに反映

では以下のコマンドでリモートリポジトリにプッシュしましょう。

% git push origin master 

コマンドの実行後、今回作成したtest.htmlがアップされていることをGitHub上で確認できました!
スクリーンショット 2020-05-17 22.46.05.png

以上で今回の記事は終了です。

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

【学習メモ】Git、GitHubの基礎(1)

0. 目標

Gitの基本的なワークフロー、コマンドの内容や機能を理解する

1. Gitの基本的なワークフロー

変更をコミットする流れ
1.ファイルの変更をステージングエリア(≒控え室)へ追加
2.ローカルリポジトリにcommit(委託する)
3.リモートリポジトリにpushする

2.ステージングエリアへの移動

ステージングエリア:複数ファイルを変更する際に、コミットするファイルを選択する

ステージングエリアへの移動は、、、

$ git add [ ファイル名 ]
$ git add. (ファイル全体を移動させる)

3.ローカルリポジトリへCommit

ステージングエリアへの追加が終わったら、Commitする

$ git commit
$ git commit -v 

すると、こんな感じでVimエディタというCommitを編集するエディタが表示される

■ ← #入力画面
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
#   (use "git push" to publish your local commits)
#
# Changes to be committed:
#       modified:   first.txt

入力方法は、次の通り

<Vimエディタの使い方>
①ターミナルでgit commitを入力する
②Vimエディタが立ち上がる
③半角英数字に入力を切り替える
④「i」を入力する(挿入モードになる)
⑤コミットメッセージを入力する
⑥「esc」を押す(ノーマルモードに戻る)
⑦「:wq」を入力してエンターを押す
(commitメッセージを保存してエディタを閉じる)

※Vimエディタ(⑤)の書き方のポイント
1行目:変更内容の要約
2行目:空行(空白)
3行目:変更理由(何のため?背景は?)

⑦が終わると、こんな感じの履歴が残り、元のターミナルに戻る

[master ***] ***を〜〜(変更内容)
 1 file changed, 2 insertions(+), 1 deletion(-) ※一例

<その他補足>
最初に変更する時は、「initial commit」と書くのが慣例

4.GitHubへのプッシュ

GitHubへプッシュするためには、GitHub上でリモートリポジトリを用意する必要がある

流れ

1.ブラウザでGitHubを開き「NewRepository」をクリック
2.Repository nameを設定
3.Public を選択
4.Create Repositoryを押す
5.push用のコマンドがブラウザ表示されるので、ターミナルに実行

5.の様子
git remote add origin ... (イメージ)
6.の様子
git push -u origin master ...(イメージ)

続きは明日以降投稿予定

参考
1.Railsチュートリアル Git
https://railstutorial.jp/chapters/beginning?version=5.1#sec-version_control

2.udemy講座
https://www.udemy.com/course/intro_git/learn/lecture/6449716#content

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

100日後にエンジニアになるキミ - 58日目 - Git - Gitの使い方4

昨日までのはこちら

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の使い方の続きです。

昨日の講座はこちら
100日後にエンジニアになるキミ - 57日目 - Git - Gitの使い方3

更新したくないファイルの除外(.gitignore)

ローカルに保存したパスワードや設定ファイルなど
リモート側に送りたく無いファイル群があると思います。

git管理をしたく無いファイルをgitignoreで除外することが出来ます。

まず、ディレクトリ内で.gitignoreというファイルを作成します。

touch .gitignore

この作成したファイルは通常見ることが出来ない隠しファイルです。
作成したものを見るには

ls -la

drwxr-xr-x 5 ss staff 160 5 17 16:12 .
drwxr-xr-x+ 43 ss staff 1376 5 16 16:53 ..
drwxr-xr-x 13 ss staff 416 5 16 17:07 .git
-rw-r--r-- 1 ss staff 0 5 17 16:12 .gitignore
-rw-r--r-- 1 ss staff 7 5 16 16:52 sample.txt

このようにして見ることが出来ます。

このファイルにgit管理したく無いファイルを書くことで、更新対象から外すことが出来ます。

gitignoreの書き方

コメント

# コメント部分

ワイルドカード

記号 意味
* /以外の0文字以上の文字列にマッチ
? /以外の1文字にマッチ
[0-9]など /以外の指定した1文字にマッチ
** 0個以上のファイル or ディレクトリにマッチ

特定の拡張子の除外

# txt ファイルの除外
*.txt

特定のフォルダの中身全てを除外

# abcフォルダを除外
abc/

特定のパターンを除外しない

# aaa.exe は更新対象にする
!/.aa/aaa.exe

フォルダ内の特定拡張子を除外

# paフォルダ内の .config ファイルを除外
pa/**/*.config

特定フォルダを除外しつつ、その中の特定ファイルは除外しない

# tmpフォルダは除外し.gitabcファイルだけは除外しない
/tmp/*
!/tmp/.gitabc

ブランチのマージ(merge)

開発現場では新機能をブランチを作って開発を行い、テストが完了したらメインのmasterブランチに取り込む
という流れで開発作業を行ったりします。

このブランチに取り込む作業のことをmergeマージといいます。

git merge ブランチ名

まず作業ブランチでファイルを作成してコミットしておきます。
branch2で作業するとします。

作業ブランチの確認をして

git branch

branch1
* branch2
master

新しいファイルを作ります。

vi sample2.txt
ls -ls

8 -rw-r--r-- 1 ss staff 8 5 17 16:35 sample2.txt

branch2でコミットします。

git commit -m "何かコメント書く"

[branch2 b4f7319] sample2
1 file changed, 1 insertion(+)
create mode 100644 sample2.txt

この状態でマスターに切り替えます。

git checkout master

Switched to branch 'master'

ファイルを見てもsample2.txtは有りません。

ls -ls

8 -rw-r--r-- 1 ss staff 7 5 16 16:52 sample.txt

mergeコマンドでbranch2の内容をマージします。

git merge branch2

Updating 454811b..b4f7319
Fast-forward
sample2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 sample2.txt

再度ファイルを確認してみると

ls -ls

8 -rw-r--r-- 1 ss staff 7 5 16 16:52 sample.txt
8 -rw-r--r-- 1 ss staff 8 5 17 16:38 sample2.txt

branch2のファイルが追加されていることがわかります。

まとめ

作業ブランチの仕組みが理解出来たら実際に作業ブランチで作業してみて
メインブランチに統合したりしてみよう。

あと設定ファイルなどよく書き換えるけど都度更新しなくて
良いやつは.gitignoreなどに登録しておき
更新対象から外してみよう。

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

作者の情報

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

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

Twitter:
https://twitter.com/otupython

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

GitHub、作業前・プルリク前にpull-rebaseするメモ

GitHubのフォークを同期するメモ
の改良版。

何をしているか↓
Github で Fork してから Pull Request をするまでの流れ
これの後半と同じ。図があって分かりやすい。

上流リポジトリを確認

upstreamが正しいか確認。originは自分のGitHubリポジトリ。

$ git remote -v
origin  https://github.com/自分のユーザー名/リポジトリ名.git (fetch)
origin  https://github.com/自分のユーザー名/リポジトリ名.git (push)
upstream    https://github.com/上流リポジトリのユーザー名/上流リポジトリ名.git (fetch)
upstream    https://github.com/上流リポジトリのユーザー名/上流リポジトリ名.git (push)

指定方法

$ git remote add upstream https://github.com/上流ユーザー名/上流リポジトリ名.git

pull --rebase

上流リポジトリ(upstream)の最新の状態をローカルのファイルに同期させる。

git pull origin mastergit fetchgit merge origin/master
git pull --rebase origin mastergit fetchgit rebase master
mergeだとマージ履歴がそのままきれいに残る、そのせいで複雑になる。
rebaseは履歴がすっきりする、そのせいで(滅多に起こらないけど)コンフリクトした時の修正が大変。
らしい

$ git pull --rebase upstream master

$ git fetch upstream
$ git merge upstream/master

push

上流リポジトリ→ローカルのファイルの最新状態を自分のGitHubリポジトリ(origin)にプッシュする。

$ git push origin master

この後、GitHubでプルリク送ったり、作業したり。

参考

git pull と git pull –rebase の違いって?図を交えて説明します!
Github で Fork してから Pull Request をするまでの流れ

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

初心者向けGitコマンド一覧

前提

Gitとは何かを知っている人向けです。
Gitとは?を学びたい方は下記のリンクを読んでから、こちらの記事を見てもらえれば幸いです。
https://qiita.com/tama0571046/items/29560a33f23a0ba63e1e

普段コマンドでGitを使うことが少ないのでおさらいも兼ねて、Gitで使う実践的なコマンドを記述していきたいと思います。

Gitを操作する便利なソフトが沢山ありますが、コマンドを覚えておくことでより深くGitを学ぶことができるかと思います!

初期設定

基本的には1回だけ行うコマンド

git config --global user.name "USERNAME"
git config --global user.email git@sample.com

GitHubへプッシュするときのユーザー設定
この設定をすることによって全てのプロジェクトを上記のユーザーとしてプッシュすることができる

git init

ローカルリポジトリを作成する
Gitで管理を始める場合は必ずこのコマンドを行う必要がある

git remote add origin https://github.com/[user name]/[repository name].git

ローカルリポジトリとリモートリポジトリを紐付ける
GitHubbitbucketで作成したリポジトリにプッシュするための前準備

変更内容の登録

ソースの変更点をGitで教える方法

git add .
git add [ファイル名]

ローカルからステージングエリア(控室)へ変更内容を移動する
[ . ]とした場合は全変更内容が適応される

git rm

削除したファイルをステージングエリアに移動する

git rm --cached [ファイル名]

gitの管理からは外したいが、ローカルにはファイルを残したいときに使用する
後述する[.gitignore]を使用しないと、再びGitで管理されるので注意

git commit -v

ステージングエリアからローカルリポジトリに変更内容を反映する
[-v]とすることで、commit内容の詳細をvimなどで確認することができる

git push origin master

ローカルリポジトリからリモートリポジトリに変更内容を反映させる
[origin master]はGitHubでの定型句のようなものなので、とりあえずそのまま覚えておけば良い
気になる人は調べてね!

変更内容の確認

修正した内容の確認

git log --oneline
git log -p [ファイル名]

commitの履歴を見ることができる
[--oneline]をつけないと情報量が多すぎて確認しにくい
1ファイルの細かい履歴を見たい場合は[ファイル名]を付けよう

git status

現在のファイルの変更状況を確認できる
赤文字:ステージングエリアに移動
緑文字:ステージングエリアに移動

git diff
git diff HEAD

commitする前にファイルの変更差分(ローカルとステージングエリアの差分)を確認することができる
「HEAD」とつけることでステージングエリアと最新のcommitとの差分が確認できる

その他

git reset .
git reset [ファイル名]

git addしたファイルをステージングエリアからローカルに戻す

git checkout .
git checkout [ファイル名]

ステージングエリアに移動する前のファイルの変更点を、最後にcommitした内容に戻すことができる

.gitignore

コマンドではなくGit管理されているプロジェクトに[.gitignore]というファイルを追加する
vimやテキストエディターで開いて、管理したくないファイル(フォルダ)のパスを記入すると対象のファイル(フォルダ)がGitの管理から外れる

  1. 自動生成されるファイル
  2. パスワードが記載されているファイル

これらのファイルには積極的に使用していこう

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

Windows Git Bash 文字化け対策

はじめに

Windows Git Bash インストール後に、git log とかで日本語表示が文字化けしている。
.bashrc に「JAVA_TOOL_OPTIONS」設定を加える必要があり。

対処方法

$ vi ~/.bashrc

chcp 65001
export PAGER=less
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

IntelliJ Terminal 文字化け対策

はじめに

Windowsで、IntelliJを使っているのだが、Terminalの日本語が文字化けしてしてしまう。
解決方法が見つからず、gitは、SourceTreeを使って凌いで来た。
しかし、ようやくその対処方法が分かりました。
lessコマンドと関係していたので、IntelliJの設定変更を色々試しても解決しなかったのでした。

文字化け対処方法

Windowsの環境変数に「LESSCHARSET」を追加する。

  • 変数名: LESSCHARSET
  • 変数値: UTF-8

参考サイト

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

git stashで何を保存するかのオプション

概要

git stashのオプション指定によってどう挙動が変わるか確認、整理します。1

git version 2.26.2 で確認。

オプションなし

リポジトリにあるファイルの変更

保存される。

% git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   README

no changes added to commit (use "git add" and/or "git commit -a")
% git stash
Saved working directory and index state WIP on master: 2be296f add
% git status
On branch master
nothing to commit, working tree clean
% git stash pop
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   README

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (c3341440d3d936bcde11b70521bfe50b6c8cf289)

ステージされた変更

保存される。popするとアンステージされた状態に戻る。
(git stash pop に --index オプションを付けるとステージされた状態に戻る)

% git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    modified:   README

% git stash
Saved working directory and index state WIP on master: 2be296f add
% git status
On branch master
nothing to commit, working tree clean
% git stash pop
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   README

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (6f7975d49efb05229d126100234347dacce702ff)
% git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   README

no changes added to commit (use "git add" and/or "git commit -a")

ステージされた新規ファイル

保存される。popするとステージされた状態に戻る。

% git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   NEWS

% git stash
Saved working directory and index state WIP on master: 2be296f add
% git status
On branch master
nothing to commit, working tree clean
% git stash pop
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   NEWS

Dropped refs/stash@{0} (06f0eade21e57da6d18f3b0b4e9672d8f37b324d)
% git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   NEWS

追跡されてないファイル

保存されない。

% git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    NEWS

nothing added to commit but untracked files present (use "git add" to track)
% git stash
No local changes to save

無視指定されてるファイル

保存されない。

% git status --ignored
On branch master
Ignored files:
  (use "git add -f <file>..." to include in what will be committed)
    README~

nothing to commit, working tree clean
% git stash
No local changes to save

-u オプションを付けた場合

追跡されてないファイル

保存される。popすると追跡されてない状態に戻る。

% git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    NEWS

nothing added to commit but untracked files present (use "git add" to track)
% git stash -u
Saved working directory and index state WIP on master: 2be296f add
% git status
On branch master
nothing to commit, working tree clean
% git stash pop
Already up to date!
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    NEWS

nothing added to commit but untracked files present (use "git add" to track)
Dropped refs/stash@{0} (4e498a9757baa17fbed2e558f9d5a833c3be6ed7)

無視指定されてるファイル

保存されない。

% git status --ignored
On branch master
Ignored files:
  (use "git add -f <file>..." to include in what will be committed)
    README~

nothing to commit, working tree clean
% git stash -u
No local changes to save

空ディレクトリ

消える。gitは空ディレクトリを管理しないので。

% ls -a emptydir                                                              ./  ../
% git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   README

no changes added to commit (use "git add" and/or "git commit -a")
% git stash -u
Saved working directory and index state WIP on master: 2be296f add
% ls -a emptydir
ls: emptydir: No such file or directory
% git stash pop
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   README

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (cfae721ccf166d2631c40b66e8984e80c0a5baef)
% ls -a emptydir
ls: emptydir: No such file or directory

-a オプションを付けた場合

追跡されてないファイル

-u オプションを付けた場合と同様に保存される。

無視指定されてるファイル

保存される。

% git status --ignored
On branch master
Ignored files:
  (use "git add -f <file>..." to include in what will be committed)
    README~

nothing to commit, working tree clean
% git stash -a
Saved working directory and index state WIP on master: 2be296f add
% git status --ignored
On branch master
nothing to commit, working tree clean
% git stash pop
Already up to date!
On branch master
nothing to commit, working tree clean
Dropped refs/stash@{0} (e287d64ca99f582a530a3cdcd021d12c39c07cb2)
% git status --ignored
On branch master
Ignored files:
  (use "git add -f <file>..." to include in what will be committed)
    README~

nothing to commit, working tree clean

空ディレクトリ

-u の場合と同様に消える。

-k (--keep-index) オプションを付けた場合

ステージされた変更、ステージされた新規ファイル

共に保存される。ステージング領域の状態は維持される。

% git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   NEWS
    modified:   README

% git stash -k
Saved working directory and index state WIP on master: 2be296f add
% git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   NEWS
    modified:   README

  1. git pullでerror: The following untracked …やYour local changes…が出たときの原因と対処 で git stash の -a オプションを知ったのがきっかけです。 

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

GitHubにプッシュ・プルリクまでのメモ

自分のGitHubリポジトリへターミナル使ってプッシュする。
自分のGitHubから共同開発用のリポジトリにプルリクエスト。
管理者がマージしてくれたら反映される。

開発を始める時は、自分のGitHubに引っ張ってくるクローンと、PCへのダウンロードが必要。
このメモはそれ以降。

ローカルだけならこの記事で。
init、add、commitはこれの方が詳しい。

まず、扱いたいファイル・フォルダのある場所(ディレクトリ)に移動する。

以前の開発からの変更を自分のファイルに持ってきて同期させる。
GitHubのフォークを同期するメモ

ユーザー名とアドレス、init、リモートURLを設定する。同じディレクトリでの2回目以降は飛ばす。

Gitのユーザー名・メールアドレスの設定

開く

グローバル設定(どのディレクトリでも適用される)とローカル設定(ディレクトリ・プロジェクトごとに設定する)がある。
ローカル設定がある場合は優先される。共同・公開プロジェクトなどで設定。
ない場合にグローバル設定が適用される。

グローバル設定

ユーザー名とメールアドレスをグローバル設定する。

$ git config --global user.name "Mona Lisa"
$ git config --global user.email "email@example.com"

グローバル設定を確認。

$ git config --global user.name
> Mona Lisa
$ git config --global user.email
email@example.com

ローカル設定

ローカル設定したいディレクトリに移動する。
ユーザー名とメールアドレスをローカル設定する。
プロジェクトのメンバーに分かりやすい・教えていい、名前とアドレスにする。

$ git config user.name "Mona Lisa"
$ git config user.email "email@example.com"

ローカル設定を確認。

$ git config user.name
> Mona Lisa
$ git config user.email
email@example.com

git init

開く
$ git init
Initialized empty Git repository in /Users/ディレクトリの階層ズラズラ/.git/

git remote add

開く

今いるディレクトリにリモート先(GitHubのリポジトリのアドレス)を設定する。
GitHubのリポジトリのページから、リモートURLを取得する。

cloneURL.jpg

コピーしたらgit remote add origin以降に貼り付ける。

$ git remote add origin https://github.com/ユーザー名/リポジトリ名.git

確認。

$ git remote -v
> origin  https://github.com/ユーザー名/リポジトリ名.git (fetch)
> origin  https://github.com/ユーザー名/リポジトリ名.git (push)

設定先を変更する→git remote set-url origin リモートURL
設定を削除する→git remote rm リモート名(origin,upstream,destinationなど)

git add

$ git add ファイル名

確認。

$ git status

返ってくるChanges to be committed:以下で、ちゃんと選択したいものが選択されていることを確認。

git commit

$ git commit -m "コメント(変更内容など)"

共同開発では特にコメントを分かりやすく、詳しく書く。
日時・ユーザー名とアドレス・コメントしか情報はぱっと見て分からない。

ここまででローカルのgitには反映された。
確認。

$ git log

git push

リモート先へプッシュ。アップロード。

$ git push origin master

git push リモート名 ブランチ名
この後GitHubのユーザー名とパスワードを要求されることがある。

GitHubからプルリク

自分のGitHubのリポジトリページを見る。

  1. 先ほどのコミットが反映されていることを確認。
  2. 緑色の「Compare & pull request」ボタンをクリック。

プルリクエスト作成ページに変わる。
上から

  1. 【ブランチ】 プルリクを送る、マージして欲しいブランチ先が選択されているか確認。
  2. 【タイトル】 コミットのコメントのようなもの。簡潔に分かりやすく書く。
  3. 【概要】 どこをどう変更したか、詳しく書ける。 Markdown記法。
  4. 【Create pull request】 緑色。このボタンでプルリクを送信。
  5. 【コミット履歴・差分】 プルリク先と自分のリポジトリの比較をする。

Create pull requestボタンを押せばプルリク完了。

参考

Git でのユーザ名を設定する
Git でユーザー名とメールアドレスを設定する方法(全体用とプロジェクト用)
リモートリポジトリを管理する
GitHubを使うなら最低限知っておきたい、プルリクエストの送り方とレビュー、マージの基本

【イラストで覚える】初心者のためのGitとGitHub用語集
→画像が分かりやすい!

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

Memo: Git command

git log

git log --oneline --pretty=format:'%h [%cd] %d %s ' --date=format:'%Y/%m/%d %H:%M:%S'

https://qiita.com/tomlla/items/219cea9dd071c8a9e147

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

Git の ssh キー

Gitリポジトリ全てで同じuser.name, user.emailそして同じsshキーを使っている場合はこのメモを読む必要はあありません。

user.nameとuser.emailを下のようにglobalに設定する手順でよいです。

$ git config --global user.name 'Taro Nihon'
$ git config --global user.email 'tn@acme.org'

あるリポジトリだけ別の名前に設定したい場合は、次のように設定します。

$ git config user.name 'Hanako Nihon'
$ git config user.email 'hn@acme.org'

あるリポジトリのssh秘密鍵を指定したい場合は、次のように設定します。

$ git config core.sshCommand 'ssh -i ~/.ssh/id_hanako'
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

gitのsubmoduleのメモ

作業中のgit親レポジトリに既存のgit子レポジトリを追加

$ cd /path/to/parent_directory/
$ git submodule add git@github.com:me/child_directory.git ./child_directory

$ git add .
$ git commit -m '......'

サブモジュールを含む親レポジトリをクローンしてくる

ToBeWritten...

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