1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

情弱のためのGitHub入門

Last updated at Posted at 2020-08-23

はじめに

自分用です。。
参考
https://dotinstall.com/lessons/basic_git
http://lilylila.hatenablog.com/entry/2018/06/22/071932
branch関係
https://www.granfairs.com/blog/staff/gitbeginner01
fork先のリポジトリの情報を持ってくる関係
https://qiita.com/taoki11111/items/6582dafeb971f66d1f79

リポジトリの作成

管理したいディレクトリに移動して

$ git init

GitHubのページに行って、新しいRepositoryを作る。
ターミナルに戻って、README.mdを作る。

$ echo "# <プロジェクト名>" >> README.md

のっけたくないファイルやフォルダがあったら、.gitignoreファイルを作ってその名前をかく。

# style.cssがいらない
style.css
# tsファイルは全部いらない
*.ts
# /imagesフォルダはいらない
/images

インデックス(ステージングエリア)に追加(add)する。

$ git add .  # 全部 
$ git add <ファイル名>

リポジトリにcommitする。

$ git commit -m "コメント"

リモートリポジトリにpushする。

$ git remote add origin https://github.com/CanonMukai/<プロジェクト名>.git
$ git push -u origin master

便利

addとcommitを同時にできるコマンド

$ git commit -am "add and commit"

ちょっとだけコマンド集

# commitをログを見る
$ git log
# 見るのを終了するときはqを押す

# 差分を見る(ステージングに何かあるとき)
$ git diff
# ないとき
$ git diff --cached

# 直前のコミットに戻る
$ git reset --hard HEAD
# 直前の1こ前のコミットに戻る
$ git reset --hard HEAD^
# とあるコミットに戻る
$ git reset --hard <commit idの最初の7桁以上>
# 1こ前まで自分が採用していたコミットに戻る(今までのはあくまでコミットの時系列)
$ git reset --hard ORIG_HEAD

branch

hogeというbranchを作る。下の流れを見るとbranchのすごさがわかる。

$ git branch  # branchを見る
*master
$ ls
index.html 
$ git branch hoge  # hogeというbranchを作る
$ git branch
*master
 hoge
$ git checkout hoge
$ git branch
*hoge
 master
## 新しいファイルstyle.cssを作る
$ ls
index.html style.css
$ git add .
$ git commit -m "Add style.css"
$ git checkout master
$ ls
index.html  ## style.cssはhogeにしかない!!

branchちょい技紹介。
以下のコマンドでhogeという新しいbranchを作り、さらにcheckoutすることができる。便利。

$ git checkout -b hoge

merge(さっきの続き)

hogeで作ったstyle.cssをmasterにも反映させたいとき

$ git branch
*master
 hoge
$ git merge hoge
# ログを見るとhogeのcommitが付け足されてる
$ ls
index.html style.css
# hogeを消そう
$ git branch -d hoge
$ git branch
*master

merge conflictの対応(頑張るぞ)

a.txtをを用意し、masterにすでにcommitしている状態。

a.txt
original

ここで、hogeというbranchを作っておく。このときmasterでもhogeでもa.txtの内容は"original"。

$ git branch hoge

master branchでa.txtを以下に変更してadd, commitしておく。

a.txt(master)
Edit in master

hogeに移動する。

$ git checkout hoge
$ git branch
*hoge
 master

a.txtを以下に変更してadd, commitしておく。

a.txt(hoge)
Edit in hoge

masterに移動。

$ git checkout master
$ git branch
 hoge
*master

ここで、hogeの内容をmasterにmergeしようとすると、a.txtの"original"の状態からどちらのbranchでも変更しているのでmerge conflictが起こる。

$ gir merge hoge
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
# git statusで状態を確認
$ git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)

	both modified:   a.txt

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

このmerge conflictをエディタを使って解消する。
masterのa.txtをエディタで開くと以下のようになっている。

a.txt(master)
<<<<<<< HEAD
Edit in master
=======
Edit in hoge
>>>>>>> hoge

hogeを適用したいので以下のように変更する。手作業面倒だけども...

a.txt(master)
Edit in hoge

これをadd, commitするとmerge conflictを解消できる。

共同作業

# 他の人のリモートリポジトリの中身をクローンする
$ git clone https://~~~~
# リモートリポジトリをoriginに割り当てる(?)
$ git remote add origin https://github.com/~~~~~
# リモートリポジトリにローカルリポジトリの変更を反映させる
$ git push origin master
# 他の人が先にリモートリポジトリを変更していたらエラーがでるので、
# まずはリモートリポジトリの内容を引っ張ってくる
$ git pull origin master
# 運悪く他の人が自分と同じ箇所を変更していたらmerge conflictを解決する

とりあえずここまで。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?