티스토리 뷰
명령어 참고
[ http://gitref.org/ ]
Step2
git reset --hard
현재 상태에서 있는 파일을 뒤로 되돌린다.
그러나 커밋되지 않고 수정되지 않은 파일, 인덱스에 없는 파일은 삭제되지 않는다.
git clean -xdf
이렇게 하면 마지막 커밋 상태로 되돌릴 수 있다.
깃 헤드 돌리기
git reset --hard 5fd0
이런 씩으로 헤드를 옮겨갈 수 있다,
reset은 특정 시점으로 돌아간다고 볼 수 있다.
git reflog
헤드의 로그를 나타냅니다.
head 가 옮겨진 로그가 남겨지있다.
Step3
git branch
깃 브랜치 종류가 나온다.
git branch [이름]
[이름]의 브랜치를 추가한다.
git checkout [이름]
[이름]의 브랜치로 이동한다.
git commit --amend
이전 커밋의 메세지 내용을 다룬다.
topic branch란?
git은 브랜치를 이용해서 topic을 만들 수 있는데, 이는 git 특성상 만드는데 비용이 싸기 때문이다.
마치 링크드리스트처럼 사용할 수 있기 때문이다. 포인터만 변경해주면 되기 때문이다.
gitk --all
모든 브랜치를 다 보이게 할 수 있다.
gitk는 자신의 head만 보이는데, 이때 all 명령을 주면 다 볼 수 있다.
git merge [브랜치이름]
2개의 브랜치를 합친다.
git branch -d [issue001]
issue001이라는 브랜치 삭제
git checkout -b issue001
issue001이라느 브랜치를 만든다.
git mergetool -t vimdiff
git merge를 하다보면 comflict가 난다. git status라고 치면 에러가 뜨는데, 이때 이것으로 해결 할 수 있다.
vimdiff 에서 wqa!로 나온다.
//========================================
remote는 서버가 아니다. 로컬 저장소의 연속 선상에 있다.
나는 로컬이며, 남들은 모두 리모트라고 보면 된다.
그래서 서버가 하나다, 이런 구조가 아니다.
clone을 하면, 독립적으로 가능하다.
리모트 저장소에서 가져온 데이터를 로컬에서 보려면,
git branch -a
리모트의 브랜치를 가져온 것을 볼 수 있다.
로컬과 리모트를 구분하기 위해서 이름이 remotes/orgin/mater 이렇게 붙는다.
git remote
리모트 이름들이 뜬다.
git remote show origin,
그 리모트의 정보를 볼 수 있다.
git remote rename origin qkdlct
이후,
git branch -a 를 통해
브랜치가 변화한 것을 알 수 있다.
git remote -v
fetch와 push의 기본 정보
로컬 git 의 정보는?
.git/config
여기서 remote를 트랙킹한다는 것은 무엇인가?
리모트에서 작업을 한 후,
devA에서 git pull을 하면 업데이트 된다.
왜 리모트 이름 없이 되는가? 트랙킹 브랜치가 config에 값이 있기 때문이다.
가령,
[brach "master"]
remote = qkd
merge = refs/heads/master
로 qkd의 master를 트랙킹 중이다.
devA에서 커밋을 해보자.
그후 git status를 치면
your branch is ahead of 'qkd/master' by 1 commit
커밋이 하나 앞선다는 말이다.
푸시를 해보자
git push qkd HEAD:master
현재 로컬의 HEAD를 리모트의 master로 넣겠다는 말이다.
그러나 master에 에러가 난다.
왜냐하면 리모트 master는 리모트에서 작업중인 브랜치이기 때문이다.
nonbare repository와
bare repository의 차이가 있다.
노출 시켜서 쓸 수 있느냐 아니냐의 차이
nonbare repository에서는 다른 git bracnh를 만들어준다.
git push qkd_origin HEAD:devA_topic1
그러면 다시 qkd로 가서
git diff devA_topic1
한 후
git merge devA_topic1
으로 머지, 그러면 fast forawrd merge가 된다.
이후 다시 devA 로 돌아가서
gitk --all 로 보면
이상하게 아직 적용이 안되어 있다.
이는 로컬이기 때문.
git remote add
- Total
- Today
- Yesterday
- 여행
- 중국탐방
- 기본소득
- 미팅싸이트
- 발해성터
- 퍼프크림
- 서울
- 독립역사탐방
- 그리움
- 대담회
- 커피
- 다망해라
- 정의는 무엇인가
- 교차하는 여러 감정들
- 추억
- 롤라 런
- 슈크림빵
- 영화
- 이티오피아
- 커스터드크림
- 기본소득 블로그 선언
- 봉오동승전지
- You'll Miss Me
- Je Vais Te Manqué
- 10년전 메일
- 유 윌 미스 미
- 아스트랄
- 사랑
- 안녕
- 선우진
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |