不求谌解

不求谌解

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

毎週の共有 -- Gitを再発見する

今週は私が技術シェアを担当する番です。いろいろ考えた結果、今週の技術シェアのテーマとして git を選ぶことにしました。理由は二つあります。一つは最近 git を使用している際にいくつかの問題が発生したため、具体的な内容は後述します。もう一つは、毎日 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 

さらに#

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