본문 바로가기
CS/Git

[Git] git 이용하기 02 - Merge/branch/Revert/Reset

by 별토끼. 2017. 5. 2.
반응형



git 이용하기 02


  • git branch 이용하기

- 해당 폴더에 console.log("hello, world")를 입력한 후 git init을 한다.


- git add hello.js. 후 commit까지 해준다.


- git log를 통해 commit 상태를 볼 수 있다.

- hello.js에 내용을 추가한 뒤 add, commit 을 한다. git log를 통해 총 두 번의 commit을 했음을 알 수 있다.

- git log --graph를 통해 붉은 그래프를 함께 볼 수 있다.

- git branch

bit branch lab1이라는 명령으로 lab1 브랜치를 생성한다.

git branch 명령으로 현재 head를 확인할 수 있다.

git checkout lab1 명령으로 lab1 head로 이동할 수 있다.

- lab1 head에서 for문을 작성하고 node hello.js를 실행하면 for문 출력이 된다.

: 이 때, commit후 master로 돌아가면 master 에는 for문이 없다.

( lab1에서 commit을 하지 않고 master로 온다면 내용이 그대로 마스터까지 따라오므로 꼭 commit을 해야한다! - 부가설명 : 아래 stash 참고)


- merge : master head에서 lab1의 내용을 합치고 싶다면 git merbe lab1을 한다.

fast-forward 방식의 merge가 되었다.

* fast-forward merge : head의 변경과 충돌이 따로 없이 merge되는 방식

- fastforward방식과 달리 master head에서 값을 변경하고 lab1 head에서 값을 변경하면 충돌이 일어난다.

 


-  이를 merge하게되면 충돌이 일어나는데 <<<HEAD, =====, >>>>lab1 기호를 지우고 변경한뒤 add, commit을 하면 된다.


  • remote repository 이용하기

- 새로운 폴더를 만든다.

- gura branch를 만든 후 gura head로 이동한다. 

- github에 repository를 생성한 후 경로에 맞게 git remote add origin https://github.com/XXX/hello.git 명령어 입력

(commit한 것을 push하지 않으면 아래와 같은 현상 발생)

- gura branch에서 작업한 후 commit을 하면 아래와 같은 모습이 나타난다.

- git push -u origin gura 를 하면 앞서 commit한 gura가 remote repository에 전송된다.


- merge를 하게 되면 아래와 같이 된다.

  • Commit 되돌리기- Revert
- git revert HEAD 
 : git revert HEAD를 입력한 후 :wq하여 revert를 한다.
  이는 취소하는 commit이 생성된다.



- 다시 three를 commit해주면 바꿀 수 있다.


- Revert는 기록이 남는다.



cf> git GUI에서 그래프 보는법 : visualize master's history탭 클릭!



  • Commit 되돌리기- Reset
- reset은 revert와 달리 기록이 남지 않는다.
- reset의 option값에는 soft, mixed, hard가 있다.

EX >
>git reset --hard HEAD~1 
: 최근 commit값 1개를 working dir까지 모두 이전상태로 되돌린다.

>git reset HEAD~1
: 최근 commit값 2개를 default값인 --mixed옵션으로 staging area까지만(commit전) 되돌린다.

>git reset --hard ORIG_HEAD
:되돌린 commit을 다시 원래의 head위치로 그대로 돌리고 싶을 때 이용


- git reset --hard HEAD~1 예제

- git reset HEAD~2 후 다시 git reset --hard ORIG_HEAD로 되돌린 예제




반응형

댓글