#author("2022-11-20T01:32:46+00:00","default:hotate","hotate")
#author("2023-06-04T00:18:45+00:00;2022-11-20T01:32:46+00:00","default:hotate","hotate")
#contents
&tag(Git, GitHub);
&tag(Git,GitHub);

* 設定 [#lac2ad0b]
- [[Gitを使い始めたら一番最初にやりたい `git config`設定メモ>https://blog.katsubemakito.net/git/git-config-1st]]
 git configに--listオプションを指定することで現在の設定を確認することができます。
- [[.gitignore の書き方 - Qiita>https://qiita.com/inabe49/items/16ee3d9d1ce68daa9fff]]
 Git はファイルを管理しているだけなので、空のディレクトリのディレクトリ構造を保存できない。
 残しておきたいフォルダの中に .gitkeep というファイル名で空のファイルを作成してディレクトリを残す方法がある。

** [[プロキシ]] [#s0ccbbd4]
- [[gitのproxy設定をリポジトリごとに変える方法 - Qiita>https://qiita.com/emudome/items/2e7942104d66d59fd577]]
 [http "http://example.com/"]
    proxy = 
- [[GitをProxy環境下で使うときにハマった件 - ごずろぐ>https://gozuk16.hatenablog.com/entry/2014/06/06/200602]]
 環境変数GIT_CURL_VERBOSEに1をセットするとGitコマンドのデバッグが出来るらしい。
- [[http経由の git コマンド(push,clone,fetch..)等がなんかうまく動かないときにデバッグする方法 - tanacasinoのメモ>http://tanacasino.hatenablog.com/entry/2013/07/23/003000]]
  環境変数「GIT_CURL_VERBOSE=1」を設定しておくと、通信内容(curl)のDEBUGを出すことができますという話。

** リポジトリ [#kd309c28]
- [[gitのremote urlを変更する(レポジトリ移行時) - Qiita>https://qiita.com/minoringo/items/917e325892733e0d606e]]
 git remote set-url origin {new url}

** ブランチ [#q8a8333b]
- [[Gitのデフォルト・ブランチ名を変更する方法 | Rriver>https://parashuto.com/rriver/tools/change-git-default-branch-name]]
 今後、自分の開発環境ではGitのデフォルト・ブランチ名をmasterからmainにしようと思います。
- [[Gitのデフォルトブランチをmasterからmainに変更する方法 - Qiita>https://qiita.com/fk_chang/items/a4839a595fef9a2c3724]]
 例えば、masterのままでいると、first commitでリモートのmainブランチに直プッシュをしたくてもリモートにmainブランチを作成してからプルリクエストを出してマージする手順が必要になります。
- [[masterからmainに変更する(githubのリモート&ローカルブランチ)branches - Qiita>https://qiita.com/masakinihirota/items/1a657674e609be112fc6]]
 ローカルで変えたブランチをリモートへpush
 git push -u origin main

** フック [#efb325ad]
- [[【Git】コミット直前に自動でファイルを整形する「pre-commit」が便利すぎたので紹介したい | DevelopersIO>https://dev.classmethod.jp/articles/introduce-pre-commit/]]
 - 「pre-commit」のセットアップ方法
 - 不要な半角スペースを消してみる

* [[コマンド]] [#w79f02d3]
- [[私の使うGitコマンドまとめ 見る編 - What is it, naokirin?>https://naokirin.hatenablog.com/entry/20111202/1322576420]]
 今回はそのうちでも「見る」ということに焦点を当てたコマンドをまとめてみようと思います。
- [[Git - リモートから特定のブランチを指定してcloneする - Qiita>http://qiita.com/icoxfog417/items/5776e0f0f758f0f0e48a]]
 git clone -b ブランチ名 https://リポジトリのアドレス
- [[よく使う git diff コマンド - Qiita>http://qiita.com/hide/items/17b970c485e803cbce08]]
 次の commit で反映される変更を表示
 git diff --cached
 直前の commit による変更を表示
 git diff HEAD^ HEAD
- [[mercurial - What is the git equivalent of of hg outgoing (hg out) or hg incoming (hg in)? - Stack Overflow>https://stackoverflow.com/questions/7624790/what-is-the-git-equivalent-of-of-hg-outgoing-hg-out-or-hg-incoming-hg-in]]
 git log --branches --not --remotes=origin
- [[dvcs - How can I see incoming commits in git? - Stack Overflow>https://stackoverflow.com/questions/1331385/how-can-i-see-incoming-commits-in-git]]
 git fetch && git log ..origin/master
 Similarly, outgoing would be this:
 git fetch && git log origin/master..
- [[Gitの一部のディレクトリだけ取得する方法 - Qiita>https://qiita.com/ponsuke0531/items/1e0ab0d6845ec93a0dc0]]
 取得したいディレクトリをsparse-checkoutに設定する
- [[git add を取り消す - Qiita>https://qiita.com/yukure/items/89562e5eb1d03995dc5b]]
 特定のファイルのみ取り消し 
 git reset HEAD file_name
- [[git: shallow cloneしてすぐunshallowする - pockestrap>https://pocke.hatenablog.com/entry/2018/12/19/015644]]
 Shallow cloneしたリポジトリ内でgit fetch --unshallowを実行すると、そのリポジトリにフェッチされていない全ての履歴をフェッチすることができます。
- addした後で差分を確認する(コミット前)
 $ git diff --cached ファイル名

** コミットログ [#df36f8e2]
- [[【Git】commitメッセージなど、デフォルトのテキストエディタを変更する - Qiita>https://qiita.com/ma_me/items/f944101c97a4d0e4a842]]
 # vimの場合
 $ git config --global core.editor vim
- [[Gitのcommitメッセージを複数行入れる方法 - Qiita>https://qiita.com/mimickn/items/586eb64e9da5b5c63e4f]]
 使い方は簡単で、-mのオプションを付けずにコミットをするだけです。

* ツール [#f8da3332]
** tig [#ecd29979]
- [[超絶便利なGitクライアントのtigのすすめ - Qiita>http://qiita.com/vivid_muimui/items/7e7a740e6537749de0c0]]
 全てのgitの機能が使えるわけではないのでうが、普段のgitの操作の大半はtigを使ったほうが断然便利です!
- [[[Git] 10分で使いはじめるTig(コミット操作を早くする) - Qiita>http://qiita.com/YusukeHosonuma/items/d81397ab70a8c26a2902]]
- [[gitクライアント「tig」を使いこなすための最低限覚えるべき6つのコマンド | リッチメディア 可能性を世界で最も開花させる>http://www.rich.co.jp/blog/tech/1245]]
 もっと便利に使いこなすためのキーバインドによる遷移

* 関連 [#oe0e4fd3]
- [[GitHub]]

** [[Subversion]] [#b689567f]
- [[SVN脳患者から見たGit - Qiita>http://qiita.com/kaityo256/items/81e7951a1ca2706955a4]]
- [[SVNからGitへの移行 ~ SVNからGitLab CE(Self-hosted)への移行ステップガイド>https://siderlabs.com/blog/ja/how-to-move-from-svn-to-gitlab/]] (2020/11/25)
  後半でSVN管理のプロジェクトをGit/GitLab管理のプロジェクトに移行する移行する手順を紹介します。
- [[社内の Subversion を Git に移行した話 - さばかん>https://shio-ax.hatenablog.com/entry/2017/12/17/234332]] (2017/12/17)
 たったそれだけかといった感じですがいくつかハマった点もありますので、そちらは後ほど紹介します。
- [[github.com/redmine/redmine の運用を引き継いだ - ファーエンドテクノロジー株式会社>https://www.farend.co.jp/blog/2022/08/github-redmine/]] (2022/08/17)
 git-svnはgitコマンドでSubversionリポジトリにアクセスできるツールです。 git svn clone を実行するとリモートのSubversionリポジトリと同じ内容のGitリポジトリがローカルに作成されます。その後は git svn fetch を実行すると、Subversionリポジトリ上の新しいコミットが git svn clone で既に作成済みのローカルのGitリポジトリに反映されます。

** [[Mercurial]] [#rdce2933]
- [[MacでMercurialリポジトリをGitリポジトリに変換する - Qiita>https://qiita.com/segur/items/53d047cfc8141ee447da]]
-- コメント:上記の手順で[[Git]]リポジトリへ変換できることを確認した。([[2020]]/02/16)
- [[frej/fast-export: A mercurial to git converter using git-fast-import>https://github.com/frej/fast-export]]
-- [[Support Python 3 · frej/fast-export@b961f14>https://github.com/frej/fast-export/commit/b961f146dfdad3dcbe36ba16d8dc9c05f10a9d65]]
- [[immoral & stoic ―下心系囲碁普及考察日記―: mercurialからgitへの移行方法>http://curren-note.seesaa.net/article/475605214.html]]
 Windows環境での移行です。(Windows10)
-- コメント: "git bash"を使って[[Windows10]]上でのリポジトリ変換に成功した。(2021/06/01)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS