不求谌解

不求谌解

💻 Web Dev / Creative 💗 ⚽ 🎧 🏓
twitter
github
jike
email

毎週の共有 - gitの再発見

image

今週は私が技術共有をする番です。考え抜いた結果、今週の技術共有のテーマとして Git を選ぶことにしました。理由は 2 つあります。1 つは最近 Git を使用している際にいくつかの問題が発生したため、具体的な内容は後述します。2 つ目は、毎日 Git を使用しているにもかかわらず、いくつかの基本的な概念にはまだ曖昧な部分があるため、今回の共有を通じて Git をより深く理解したいと思っています。

Git の原理#

git

workspace: ワークスペース(現在の開発位置)

  • git pull: リモートリポジトリから最新のコードをワークスペースに取得する => git fetch + git merge
  • git diff: ステージングされていない変更を表示する

index: ステージングエリア

  • git add: ワークスペースでの変更内容をステージングエリアに追加する

repository: ローカルリポジトリ

  • git commit: ステージングエリアの内容をローカルリポジトリにコミットする
  • git fetchまたはgit clone: リモートリポジトリからコードをローカルリポジトリに取得 / クローンする

remote repository: リモートリポジトリ

  • git push: ローカルリポジトリの内容をリモートリポジトリに送信する

よくある問題#

  1. git push origin master は具体的に何をしているのですか?

ローカルのmasterブランチの内容をoriginという場所にプッシュし、originという場所に同じ名前のmasterブランチを作成します。
完全なコマンド:git push origin master:master => git push <リモートホスト名> <ローカルブランチ名>:<リモートブランチ名>

  1. git merge と git rebase の違い

例:test ブランチを master ブランチにマージする

git-test

git mergeの結果

git-merge

git rebaseの結果

git-rebase

オンラインデモ

最近の問題#

  1. ローカルプロジェクトがエラーで実行できず、以前のバージョンに戻りたい => ローカルリポジトリを以前のバージョンにリセットする
git reset --hard/soft [戻りたいコミット]
  1. リポジトリにプッシュしたコミットを取り消す => リモートリポジトリを以前のバージョンにリセットする
git reset --hard [戻りたいコミット]
git push origin HEAD --force 

さらに詳しく#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。