https://seungwubaek.github.io/tools/git/master_vs_origin_master/
[개념] master vs origin/master
master 와 origin/master 의 차이는 뭘까? 이 포스트를 통해 그 의미들을 이해해보자.
seungwubaek.github.io
origin/master
origin 이라는 원격 저장소 안에 master 브랜치
origin/HEAD
origin원격 저장소 안의 현재코드 상태
HEAD->master
현재 코드상태가 로컬 저장소의 master브랜치의 상태와 같음
- 각종 깃 명령어
https://medium.com/@joongwon/git-git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-c25b421ecdbd
[Git] Git 명령어 정리
한동안 포스팅 주제도 못 잡았고 회사일이 너무 바빠서 블로그 엄두도 못 내다가 추석 연휴 때 고향에 내려가서 휴식을 취하며 독서도 하고 포스팅도 하려고 했지만.. 그것도 여의치 않았다. 대
medium.com
깃 구조
work tree(작업폴더) -> 인덱스(git add . 으로 등록 되는 로컬 저장공간) -> 원격저장소(commit을 통해 head에 올라감, head가 가르키는 브런치에 push를 함으로써 결과적으로 브런치에 등록 성공)
origin/master에서
origin은 원격저장소의 이름(원격저장소에 연결한 url에 이름을 붙인 것)
origin/master은 origin의 head가 master을 가리키고 있다는 뜻
원격저장소 추가
git remote add <원격 저장소> <저장소 url>
stage에 추가
$ git add <파일/디렉토리 경로>
워킹트리에는 남기고 stage의 파일만 삭제, 반드시 커밋해주어야 함
- \*는 루트경로의 전체를 삭제하겠다는 의미
$ git rm --cached \*
git commit -m "change all untract"
- 깃 커밋 기록 삭제
https://velog.io/@1yangsh/git-%EA%B4%80%EB%A0%A8-%EB%A9%94%EB%AA%A8
[git] 커밋 기록 삭제 방법
git commit 기록 삭제 방법 (웬만하면 사용 금지!!)
velog.io
- 깃 원격저장소에 저장된 파일 삭제 및 추적금지
https://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html
[Git] Github에 잘못 올라간 파일 삭제하기 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
깃 잘못된 파일을 올렸을 때
\target포함 하위폴더 모두 언트랙 하게 한 후
커밋을 통해 파일들을 삭제
git rm –cached -r \target
git commit -m "target untracted"
- reset, revert차이
[초보용] Git 되돌리기( Reset, Revert )
개발바보들 1화 git “back to the future”에서 설명한 Reset / Revert에 대한 글입니다. Git을 익히면서 헷갈렸던 것들 중의 하나가 이력을 되돌리기 입니다. Git에서 이력을 되돌리는 방법은 여러가지
www.devpools.kr
이전 기록을 모두 지우고 이전 커밋으로 복구
(로컬에 있는 파일도 전부 복구)
git reset --hard [commit Pid]
가장 최근 commit 취소, 하지만 로컬에 있는 File은 그대로
git reset --soft [commit Pid]
-git log 옵션
Git - 커밋 히스토리 조회하기
머지 커밋 표시하지 않기 저장소를 사용하는 워크플로우에 따라 머지 커밋이 차지하는 비중이 클 수도 있다. --no-merges 옵션을 사용하면 검색 결과에서 머지 커밋을 표시하지 않도록 할 수 있다.
git-scm.com
깃로그 갯수 제한해서 출력
git log -n
로그가 많을 때
q를 누르면 탈출
리모트 저장소 삭제
https://mylko72.gitbooks.io/git/content/remote/remove.html
리모트 저장소 이름변경 및 삭제 · Git, 분산버전 관리시스템
mylko72.gitbooks.io
git remote -rm [remote명(origin 같은)]
깃 브랜치 확인
https://jw910911.tistory.com/16
Git - ( local / remote ) branch 사용법 정리
Git 명령어 Fetch -> 리모트 저장소에 있는 모든 데이터를 로컬로 가져옴. Git branch [브랜치명] => 새로운 브랜치 생성 Git checkout [브랜치명] => 브랜치 checkout(다른 브랜치로 이동) Git commit => ———>..
jw910911.tistory.com
깃 로컬 브랜치 확인
git branch
깃 저장소 모두 확인
git branch -a
깃 원격 브런치 확인
git branch -r
깃에서 로컬브랜치, 원격브랜치는 따로 존재한다.
로컬브랜치에 branch를 생성하여 add, commit 등으로 형상 관리를 해준 다음
원격브랜치에 push하기 commit내용을 등록하기 위해서는 다음과 같이 입력해준다.
(로컬브랜치와 원격브랜치를 일치시켜주기 위함)
git push --set-upstream origin [branch_name]
깃 병합
https://backlog.com/git-tutorial/kr/stepup/stepup2_4.html
누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog
누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!
backlog.com
donghu, master브런치가 있는 상황에서 master브런치에 donghu브런치 내용을 머지하는 경우
git checkout master
git merge donghu
--> master브런치의 내용 변경이 없고, donghu브런치 내용만 변경된 경우 fast-forward병합 성공
위의 merge시도시 양쪽에서 파일 수정을 이행하여 충돌이 일어난 경우
CONFLICT (content): Merge conflict in src/main/webapp/index.jsp
Automatic merge failed; fix conflicts and then commit the result.
해결방법 1: 해당 파일을 찾아가면 다음과 같이 head(지금 checkout 되어있는 브런치)
와 merge를 위해 파일을 가져올 브런치(donghu)의 내용이 표시된다.
<<<<<<< HEAD
<!-- add log to master after checkout -->
=======
<!-- donghu branch to merge -->
>>>>>>> donghu
상태확인을 통해 어느 파일이 충돌일어났는지 확인
git status
여기서 해당 파일의 내용을 수정한 후
git add .
git commit
에디터에서 log에 남길 내용 입력
을 시행해주면 merge가 성공되고 해당 내용을 push해주고 싶으면
git push
를 사용한다.
충돌이 발생하였을 때 머지를 진행하는 상태가 된다.
(master|MERGING)
여기서 머지를 포기하려면 다음과 같이 입력한다.
git merge --abort
해결방법 2: 한쪽을 덮어쓰는 방법
https://engineer135.tistory.com/166
git merge 덮어쓰기(overwrite)
머지할때 한쪽 소스로 덮어쓰는 법 git merge -Xours targetBranch 현재 브랜치 기준으로 덮어씀 ( ours 우리 소스를 쓸게! use our sources) git merge -Xtheirs targetBranch 타겟 브랜치 기준으로 덮어씀 ( t..
engineer135.tistory.com
git merge -Xours targetBranch 현재 브랜치 기준으로 덮어씀 ( ours 우리 소스를 쓸게! use our sources)
git merge -Xtheirs targetBranch 타겟 브랜치 기준으로 덮어씀 ( theirs 걔네 소스를 쓸게! use thier sources)
pull하는 방법
https://potensj.tistory.com/90
[ git 기본 ] git pull 시 특정 branch 를 pull 해오기
이번 포스팅에서는 git pull 시 특정 브랜치를 pull 해오는 방법에 대해서 알아보겠습니다. 우선 git branch -v 명령을 통해 현재 사용하고 있는 branch 를 확인합니다. 그리고 git pull 을 해주면 현재 사용
potensj.tistory.com
pull명령어는 fetch(이력 가져오기)와 merge를 동시에 시행해주는 명령어이다.
git pull origin [가져올 브런치 이름]
git fetch 사용법
https://kindfamily.github.io/2019/12/10/%EC%A0%95%EB%A6%AC/
fetch (지옥에서온 깃)
do-it 지옥에서 온 github 책을 보고 fetch 명령어에 대해서 정리한 내용입니다책구매링크05 깃허브로 협업하기 챕터를 읽고 fetch에 대해서 정리 다른사람이 수정한 소스를 흟어보고 합치고 싶을때
kindfamily.github.io
git fetch origin [패치해올 브랜치 명]
임시브런치 fetch_head에 브런치의 이력을 받아와준다.
패치는 원격저장소의 정보만 최신으로 유지하고, 로컬은 반영하지 않는 명령어이다.
- 원격 저장소의 최신 상태 가져오기:
- 원격 저장소의 브랜치, 커밋, 태그 등의 최신 정보를 로컬에 가져옵니다.
- 단, 가져온 정보는 로컬 브랜치를 변경하지 않고 origin/main과 같은 원격 추적 브랜치(remote-tracking branch)에 저장됩니다.
- 작업 내용 확인:
- git fetch 후, 원격 저장소의 상태와 로컬 저장소를 비교하여 어떤 작업이 추가되었는지 확인할 수 있습니다
원격브런치 특정 시점으로 reset 하는 방법
https://abn-abn.tistory.com/312
GitHub 원격저장소 히스토리 삭제하기
출처 : https://jupiny.com/2019/03/19/revert-commits-in-remote-repository/ Git으로 버젼 관리를 하며 개발하다보면, 작성한 커밋들을 되돌려서 다시 이전 상태로 원상복구하고 싶은 경우가 한번쯤 있을 것..
abn-abn.tistory.com
시점을 되돌린 다음 강제로 푸쉬해준다.
git reset --hard [commit id]
git push -f
이 경우 merge한 다른 브런치의 코드에도 영향을 줌으로 사용시 조심해야한다.
시점은 되돌리고, 현재코드만 유지해주려면
git reset --soft [commit id]
를 통해 git 파일 안의 히스토리만 시점을 되돌리고
git add .
git commit -m "[...]"
을 통해 로컬에 있는 유지된 시점의 코드를 추가하여 커밋하고
git push -f로 추가
git merge, rebase차이
https://brunch.co.kr/@anonymdevoo/7
4. Merge 와 Rebase의 차이점
Merge 와 Rebase에 대한 개인적 견해 | Merge vs Rebase 두개의 차이점을 간단하게 그림으로 설명해보자. 아래 설명은 "그냥 그런가보다."하고 일단 받아들이고 직접 사용해보면서 깨닫는걸 추천한다.
brunch.co.kr
merge는 이전 히스토리를 그대로 가져옴
rebase는 이전 히스토리를 삭제하고 새로운 시점에서 시작
rebase의 경우 다시 merge할 때 모든 충돌을 컨트롤 해주어야하기 때문에 잘 생각하고 써야한다.
master브런치를 동후 브런치의 소스로 rebase 하려면
git checkout master
git rebase donghu
기존 init되어있는 로컬폴더의 로컬 브런치에 pull하기
git pull -set-upstream origin dev
git 리모트 저장소 주소확인, 주소 재설정
git remote url 확인
git remote -v
리모트 저장소 url 주소 변경
git remote set-url origin [url]
'TOOLS > git' 카테고리의 다른 글
깃 리눅스 서버 관리 (0) | 2025.02.03 |
---|---|
master -> master (fetch first)오류 (0) | 2021.07.12 |
git지정파일 이력 삭제 (1) | 2021.06.28 |
git 복사, branch조회 (0) | 2021.06.28 |
git 명령어 (0) | 2021.06.19 |
댓글