Skip to content

Latest commit

 

History

History
129 lines (102 loc) · 8.43 KB

Git.md

File metadata and controls

129 lines (102 loc) · 8.43 KB

Git

設定

  • core.autocrlf
    • CRLF じゃないと動かないファイルが存在するケースがあるので false 推奨
    • Windows 系のファイル(バッチファイル等)が含まれていなければ input でも可
    • true にするメリットは特にない
      • 仮想環境でシェルスクリプトを動かそうとしたときに CRLF になって動かない
    • .gitattributesで改行コードの扱いを制御する
  • core.ignorecase
    • false にしておいた方が無難
    • ファイルは git mv -f file.txt File.txt で変更できる
    • ディレクトリは一度別名にするしかなさそう
  • core.pager

SSH

パーミッション

.gitignore

SVN との比較

メリット

  • ブランチ開発をしやすい
    • ブランチの切り替えが高速
    • PR 文化

デメリット

  • 一部だけをクローンできない
    • 10GB を超えるリポジトリを扱いづらい
  • 容量の大きなファイルを扱いづらい

パッチ

メンテナンス

推奨ルール

  • 基本的に force push はしない
    • 履歴が改変されてしまう
      • コミットハッシュが変わる
      • レビューコメントに対する修正差分が分からなくなる

操作が重い

  • git fsck
  • git gc

巨大リポジトリ

5GB を超えるリポジトリを扱うには。

課題

  • git clone[push] が重い、失敗する
  • git status が重い

対策

関連

https://github.com/SnowCait/git-notes/blob/master/GitHubActions.md#%E5%B7%A8%E5%A4%A7%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E6%89%B1%E3%81%86%E6%96%B9%E6%B3%95

Sparse checkout

Tracking branch

Out of memory

Branch

マージ

仕組み

Bisect

Diff

FSMonitor

Analyze