Git - .git/push/reset/.gitignore


.gitディレクトリ

  • .gitカタログ内容
  • HEADファイル

  • HEADファイル:ローカルのHEADが指す★local★「ファイルの場所」が格納されている「ファイルの場所」のファイル
  • HEADが(ローカル)マスターの場合
  • $ cat ./git/HEAD -> ref: refs/heads/master
  • HEADが(ローカル)macの場合
  • $ cat ./git/HEAD -> ref: refs/heads/mac
  • refs/head/master

  • 地元マスター
  • $ git push origin HEAD:refs/heads/master = git push origin master
  • .git/configファイル


    default .git.config



    gerritでgit/config

  • original push command
  • $ git push origin HEAD:work
    = $ git push origin HEAD:refs/heads/work
    = $ git push origin HEAD:refs/for/work	# gerrit 사용 시
  • ジャックマンドが面倒だったら.git/config入力してください
  • [remote "work"]	# gerrit 사용 기준
        url = http://[email protected]/test
        fetch = +refs/heads/*:refs/remotes/origin/*
        push = refs/heads/work:refs/for/work
  • 現在は下図のように、コマンドも1番と同じです.
  • $ git push work

    push

  • $ git push HEAD:refs/heads/master
  • status


    特定のパス状態だけ見たい


    $ git status <path>

  • reset


    $ git reset <OPTION>



    $ git reset --soft HEAD^


    命令語を試してみます.
    $ git reset --soft HEAD^
    
  • 「キャンセル済み」状態のみ提出
  • 修正された文書の内容に従って
  • $ git reset HEAD^

    $ git reset HEAD^
    
  • 現在$git add直前の状態!!
  • 修正された文書の内容に従って
  • git reset --hard HEAD^

    $ git reset --hard HEAD^
  • 訂正事項Xを反映する前に提出した内容に直接文書を復元
  • 修正したファイルは全て削除
  • .gitignore

  • .gitignore
  • *.[oa]	# 확장자 .o || .a 인 파일 무시
    !lib.a	# ! 는 '예외적으로 포함'한다는 뜻. 즉 lib.a는 추적함
    *~	# '~' 로 끝나는 파일 무시
    /build	# 루트 디렉터리에 있는 build 파일은 무시, 하지만 'subdir/build' 같이 다른 폴더 내 /build 는 포함
    build/	# build/ 디렉터리에 있는 '모든 파일' 무시
    doc/*.txt # doc/*.txt 무시, 하지만 doc/subdir/*.txt 등은 포함