Upgrade to Pro — share decks privately, control downloads, hide ads and more …

最初に知っておきたい Gitのこと

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for nntsugu nntsugu
October 21, 2020

最初に知っておきたい Gitのこと

最近ITエンジニアになった人、Gitって何?な人向け。
Gitを使ったチーム開発の最初の一歩を踏み出す助けになればいいですね。
git clone/pull→checkout→add/commit→push→pull requestの流れをさらっと書いたもの。
日々のmerge/rebase, conflictへの対処などは記載していないので周りチームメンバーに聞いてみてね。

Avatar for nntsugu

nntsugu

October 21, 2020
Tweet

More Decks by nntsugu

Other Decks in Programming

Transcript

  1. これはなに? 対象 - Gitって何?よくわからん!!という人 - ITエンジニアにこれからなろう・最近なった人 何がわかるの? - Gitのremote repositoryとlocal

    repositoryについて少しわかる - とりあえずこれだけ知っておけばGitを使ったチーム開発の最初の一歩を踏み出せ るんじゃないかな - Merge/Rebase、Conflictやらの対処方法はチームメンバーに聞くかコマンドのメッ セージを見て調べてね。がんばれ。 - おまけ以降はおいおい理解すればOK - 自分が参加しているDiscordサーバの人向けに書いたのでわかりにくいかもだし、おまけ以降はちょい雑。
  2. local clone origin ①clone (初回) ①pull local clone upstream ①fork

    origin (your fork) ② clone/pull remote repository local repository ③ upstream として 登 録 remote repositoryの内容をlocalに持ってくるフローx2種類 (A) (B) *こちらは業務ではあまり使わない。(A)だけ知っていればとりあえずok
  3. local clone origin push local clone upstream origin (your fork)

    ① push remote repository local repository ②pull request local repositoryの内容をremoteへ反映するフローx2種類 (A) (B) *こちらは業務ではあまり使わない。(A)だけ知っていればとりあえずok
  4. local clone (master/main branch) origin (master/main branch) push remote repository

    local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う)
  5. local clone (master/main branch) origin (master/main branch) push remote repository

    local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う)
  6. 知っておいてほしいこと local clone (master/main branch) origin (master/main branch) push remote

    repository local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う)
  7. local clone (master/main branch) origin (master/main branch) push remote repository

    local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う) 知っておいてほしいこと - master/main branchへの直接の変更は行儀が悪い
  8. local clone (master/main branch) origin (master/main branch) push remote repository

    local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う) 知っておいてほしいこと - master/main branchへの直接の変更は行儀が悪い - なぜか?
  9. local clone (master/main branch) origin (master/main branch) push remote repository

    local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う) 知っておいてほしいこと - master/main branchへの直接の変更は行儀が悪い - なぜか? → master/main branchへの変更はレビューとテストを受 け、品質を担保されたものであることが望ましいから
  10. local clone (master/main branch) origin (master/main branch) push remote repository

    local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う) 知っておいてほしいこと - master/main branchへの直接の変更は行儀が悪い - なぜか? → master/main branchへの変更はレビューとテストを受 け、品質を担保されたものであることが望ましいから - じゃあどうするの?
  11. local clone (master/main branch) origin (master/main branch) push remote repository

    local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う) 知っておいてほしいこと - master/main branchへの直接の変更は行儀が悪い - なぜか? → master/main branchへの変更はレビューとテストを受 け、品質を担保されたものであることが望ましいから - じゃあどうするの? → topic branchを作成してremoteへ変更をpushすること で、レビューとテストを受けてから master/main branchへ反 映できるようにする
  12. remote repository local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う) origin (master/main branch)

    local clone (master/main branch) ①clone /pull local clone (your topic branch) ②checkout ③ファイルを作成/削除の場合  add→commit  ファイルを編集しただけの場合  commit
  13. remote repository local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う) origin (master/main branch)

    local clone (master/main branch) ①clone /pull ②checkout ③ファイルを作成/削除の場合  add→commit  ファイルを編集しただけの場合  commit origin (your topic branch) ④push ⑤pull request local clone (your topic branch)
  14. remote repository local repository local repositoryの内容をremoteへ反映するフローのお作法( branchを使う) origin (master/main branch)

    local clone (master/main branch) ①clone /pull ②checkout ③ファイルを作成/削除の場合  add→commit  ファイルを編集しただけの場合  commit ④push ⑤pull request ⑤pull requestのタイミングでレビューやテ ストを受け、問題ないと判断されると master/main branchにyour branchが マージされる。 your branchをマージする先のbranchや、 pull requestの際にテストを受けるかどう か?はチームにより異なる。周りのチーム メンバーに聞いてみてね。 origin (your topic branch) local clone (your topic branch)
  15. remote repository local repository おまけ git add/commitをする必要があるのはなぜ? local clone -

    local cloneの内部は3層構造に なっている - ファイルは3層のいずれかにい る - addでworking directoryから staging areaに移動し - commitでstaging areaから repogitoryへ移動する - repositoryにあるファイルは pushで指定されたremote repogitoryへ送り込まれる - merge/rebase、resetなどによ り、repogitoryからstaging areaや working directoryに差し戻される こともある
  16. remote repository local repository おまけ git add/commitをする必要があるのはなぜ? local clone -

    local cloneの内部は3層構造に なっている - ファイルは3層のいずれかにい る - addでworking directoryから staging areaに移動し - commitでstaging areaから repogitoryへ移動する - repositoryにあるファイルは pushで指定されたremote repogitoryへ送り込まれる - merge/rebase、resetなどによ り、repogitoryからstaging areaや working directoryに差し戻される こともある 今すぐ理解する必要はないけど、詳細は下記を読んでみてください。 chromeなどの自動翻訳を活用すれば十分読めるはず。 https://medium.com/@lucasmaurer/git-gud-the-working-tree-staging-area-and-local-repo -a1f0f4822018
  17. おまけ git tatusでファイルの居場所と状態を確認する癖をつけよう。詳細は引用元を読んでみてほしい。 引用元: https://medium.com/@lucasmaurer/git-gud-the-working-tree-staging-area-and-local-repo-a1f0f4822018 - ファイルが今working directory/staging area/repositoryのどこにあって、どのような状態かわ かります。

    - 画像は一例。 - Untracked files: (赤字) - git addされる前のもの - working directoryに存在する=gitの管理下 にないファイル - Changes to be committed: (緑字) - git管理下のファイル - git addされstaging areaにあるファイル達 - git commitできる状態の編集されたファイル 達 - Changes not staged for commit: (赤字) - git管理下のファイル - git addされstaging areaにあるファイル達 - conflictなど何らかの理由で、 commitの前に 修正が必要なファイル達