1. LOCAL REPO


1) local repo init

  git config --global user.name "test1"

  git config --global user.email  test1@test.co.kr


  git init    



2) 변경된 파일 추가 
  git add test.doc   (.git안에 staging 형태로 추가)
  git status 


3) 변경된 사항 반영
  git commit

  git commit --message 'test'



4) 변경 history 보기

  git log



5) 변경 차이 보기

  git diff master~1  master  (--stat or --word-diff)

  git diff 123443  123444  


  git diff master   (current dir과 마지막 커밋과 비교)

  git diff             (current dir과 staging 내용 비교)



2. REMOTE REPO


 1) remote repo 추가  (여러개 remote repo 추가 가능)


    cd /tmp/test

    git remote add origin https://github.com/test/test.git   (remote repo name : origin)


    git remote --verbose


    git remote show   (remote 상세한 정보 보기)

    git remote prune  (다른 사용자에 의해 삭제된 branch 정보 삭제)



2) source get

    git fetch  (remote 변경 데이터 가져옴, no merge)


    git pull  (remote 변경 데이터를 가져와서 local과 merge)

    ==> git fetch, git merge origin/master


3) source put

    git push


    git push --set-upstream origin master  (처음 remote branch를 생성하기 위해 push 할때 사용)


    git push --delete origin test1  (test1를 지우고 현재 master push)


4) source 복제

    remote에 repo를 복사하여 local에 구성


    git clone https://github.com/test/test.git

    git clone https://github.com/test/test.git   test1  (test1에 remote clone)


    git remote --verbose




3. 새로운 Branch 구성


1) branch 생성

    git branch test1


    git checkout test1   ( checkout : 새로운 브랜치로 이동 )

    git checkout --force

    git stash


    git branch --delete test1 ( test1 브랜치 삭제)


2) git branch list


    git branch 

    git show-branch




4. Git 일반 기능



1) mv


git mv test1 test2

git commit --message "test2"


2) rm


git rm test3

git commit --message "remove test3"



3) reset

git reset --hard   (index staging and working dir)     , --mixed  (index staging..)


last commit으로 되돌림.


git checkout master

git reset HEAD^


git reflog HEAD   (head에 대한 log를 확인)



4) clean

git clean --force    (untracked file들을 삭제, 임시 파일등등)

git clean -d -n  ( d: directory,  n : dry-run )


5) .gitignore


.gitignore      파일 생성

git add .gitignore     

git commit --message "add ignore file"


git clean --force -X  (gitignore에 표시된 파일 삭제)


6) stash


uncommitted change를 숨김처리


git stash save

git stash list

git stash pop  (git stash apply  -- 유지)

git stash clear



git update-idex --assume-unchanged test3

(test3 변경을 무시)


git ls-files -v  (변경 무시된 파일 표시)


git update-index --no-assume-unchanged test3  (원래대로 돌림)



7) log


git log

git log --format=email --reverse --max-count 2


git log --format=fuller

git log --format="%ar %an did: %s"          (ar : format date, an : author, %s : subject)

git log --oneline --graph  --decorate         ( 그래픽하게 log를 )



git blame --date=short   test1.txt   (test1.txt 파일에 대한 line별 변경 사항)


git bisect log  (git bisect good/bad 로 설정한 bug log를 확인)



5. git merge


git checkout -b test-merge    (새로운 브랜치 생성)


git mv test1.txt test11.txt


git add

git commit  -m "test.."



git checkout master

edit test1.txt


git commit -m "test..."

git merge test-merge


git branch --delete test-merge


git show master



6. git rerere


merge conflict 발생시 기존에 해결한 절차를 반영하여 해결


git config --global --ad rerere.enabled  1    (enable)

git rerere forget test1.txt   (test1.txt에 대한 conflict 해결 삭제)



7. git tag (reference)


버전 release시 태그를 추가함으로써 향후 해당 버전에 재테스트에 수행 대비


git checkout master

git tag v1


git tag


git tag  태그명  (--list or  --force  or  --delete)


git push -tags  ( remote repo에 tage push )



8. git cherry-pick


branch후 single commit를  main에 반영 하고 싶을때


git checkout -b test-v1.0

edit test3.txt

git commit --message "test...."


git cherry --verbose master ( master와의 차이 확인 )



git checkout master

git cherry-pick test-v1.0    ( conflict 발생시 : git cherry-pick --contine, git cherry-pick --abort )




9. git revert


commit를 되돌리고 싶을때..


git checkout master

git revert  34234


10. git rebase


branch 통합시 history를 rewrite하여 새로 설정


git checkout -b test-rebase


git commit --message "test....."


git checkout test

git rebase test-rebase


git pull --rebase  (remote...)

git push origin +test




10. GitHub 사용


command tool (gh) 제공


git remote add origin https://~~~

git checkout -b test-br master

git commit "test"


git push --set-upstream origin test-br

gh pull-request










'GIT' 카테고리의 다른 글

git 사용  (0) 2019.09.16

+ Recent posts