리셋 되지 말자

git reset 본문

Git

git reset

kyeongjun-dev 2020. 8. 29. 15:00

커밋을 여러개 했는데, 중간의 커밋을 제거하고 싶을 때

git reset --hard

hard옵션을 사용하면 로컬에 지우고자 하는 커밋의 내용이 남지 않는다
사용하지 않으면 로컬에 그대로 지우고자 하는 커밋의 내용이 남음

git reset HEAD~1 을 하면 reset 사용 가능함

마스터 브랜치가 아니면 -f 옵션을 넣어서 강제 푸시 해도 된다

마스터 브랜치에 푸시할때는 절대 -f 옵션 사용 하지 마라

로컬과 git repository를 이은다음 업데이트 한다.

$ git remote -v
origin  https://github.com/Penguin135/web-skills.git (fetch)
origin  https://github.com/Penguin135/web-skills.git (push)

git clone이라는 명령어로 로컬로 클론 받은 저장소의 이름이 origin 이다.

하지만 내부에서 내 깃허브를 origin으로 정해서 origin이 내 깃허브로 표시가 됨.

커밋을 여러개 했는데, 중간의 커밋을 제거하고 싶을 때

git remote add

$ git remote add upstream https://github.com/cbnuswoss/web-skills.git

upstream은 이름이다. upstream말고도 다른거 입력 해도 됨.
upstream이라는 로컬과 원래 깃 사이의 통로가 생겼다고 보면 된다.

$ git remote -v
origin  https://github.com/Penguin135/web-skills.git (fetch)
origin  https://github.com/Penguin135/web-skills.git (push)
upstream        https://github.com/cbnuswoss/web-skills.git (fetch)   
upstream        https://github.com/cbnuswoss/web-skills.git (push)

git remote -v 명령어를 사용하면 upstream이 생성된것을 확인할 수 있다.

pull 명령어

pull이라는 명령어 자체가 fetch + merge 이다.(pull이 안될때도 있고, pull받을 때 충돌 등의 문제가 생길 수 있음)

fetch, merge

pull을 쓰지 않고 fetch와 merge를 나누어서 사용하도록 하자

깃 가상 테스트

http://git-school.github.io/visualizing-git/#free-remote

fetch merge

origin에 commit한 두 개를 branch에서 fetch하면 origin/master라는 이름표가 붙고, 이 상태에서 merge를 하면 로컬로 가져와진다.

fetch

$ git fetch upstream master
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 16 (delta 12), reused 5 (delta 4), pack-reused 0
Unpacking objects: 100% (16/16), 2.32 KiB | 50.00 KiB/s, done.
From https://github.com/cbnuswoss/web-skills
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> upstream/master
  • git log
$ git log
commit b0c2154e1cb1d7736d3636a36e1753c6e1f0c711 (HEAD -> master, origin/master, origin/HEAD)
Author: rudwn <rudwns273@naver.com>
Date:   Sat Aug 29 13:44:10 2020 +0900

    CSS Best Practices 개요 (#18)

commit 51e7900697911bac3a7832aa22066fe3c215b40a (origin/gh-pages)
Author: andreasbm <andmehlsen@gmail.com>
Date:   Thu Jun 11 23:13:20 2020 +0200

    Minor changes to build tools entry, bump version, only use native share on smaller screens due to web share browser bug, generate new readme.

commit f4557255e2face2e1b51a674e5d5a77db6cfa09c
Author: andreasbm <andmehlsen@gmail.com>
Date:   Sat May 2 13:46:24 2020 +0200

    Update the contributing guidelines.

commit 7b3cbfcf60b92a78f2b5c93fc9544cc5451d8752
Author: andreasbm <andmehlsen@gmail.com>
Date:   Sat May 2 12:57:44 2020 +0200

    Fix typo in accessibility collection.

commit 40019c62ef06cb49db5e7b95a8175db8dd679f13
Author: andreasbm <andmehlsen@gmail.com>
Date:   Fri Apr 17 22:47:07 2020 +0200

내가 커밋한 것만 뜸

  • git merge, git log
$ git merge upstream/master
Auto-merging src/data/fundamentals.js
Merge made by the 'recursive' strategy.
 src/data/fundamentals.js | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

rudwn@LAPTOP-MKV7A847 MINGW64 ~/cb-opensource-program/web-skills (master)
$ git log
commit c73f6dc036f43b6cf42808644cd895f389d6bc20 (HEAD -> master)
Merge: b0c2154 fa2aa61
Author: rudwn <rudwns273@naver.com>
Date:   Sat Aug 29 14:58:23 2020 +0900

    Merge remote-tracking branch 'upstream/master'

commit fa2aa6180f647fbed0bdb231648c7cf3c4b85c95 (upstream/master)
Author: 이시은 <te04056@naver.com>
Date:   Sat Aug 29 13:43:26 2020 +0900

    HTML Svg 개요(#6)

commit bac87e52ff1d57251cb80cacea5955336743f828
Author: xloz <tjwns53@naver.com>
Date:   Sat Aug 29 13:43:23 2020 +0900

    CSS Animations 개요(#23)

commit 6925b0ce87d012fa5da52a64130d648e516c4828
Merge: 51e7900 3da3cb0
Author: Bora Lee (Violet) <learnerbr@gmail.com>
Date:   Sat Aug 29 14:13:39 2020 +0900

    Merge pull request #32 from gyungchang/master

    CSS Grid 개요(#9)

commit 3da3cb0e87b897e397e5a35bbf127efefbf4b90e

다른 사람들이 commit한 내용도 표시가 됨. (merge가 된 것)

(아래 잘린 내용을 보고 싶으면 Enter 또는 아래 방향키)

git merge나 기타 등등을 하다가 꼬였을 때는 

git merge --abort

명령어를 입력한다.

그리고 다시 git merge upstream/master로 다시 merge를 진행한다.

'Git' 카테고리의 다른 글

github 화살표 디렉토리  (2) 2020.10.05
git branch  (0) 2020.08.29
pull request  (0) 2020.08.29
fork, clone  (0) 2020.08.29
centos 에서 git 사용하기 (기초)  (0) 2019.11.02
Comments