일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Static
- Linux
- VCS
- Java
- git
- spring
- NoSQL
- Heap
- HTTP
- network
- javascript
- socket
- 데이터통신
- mongodb
- nodejs
- r
- html
- 네트워크
- AWS
- Elk
- ajax
- libuv
- mybatis
- github
- reactor
- cache
- redis
- reactive
- effective
- Lombok
- Today
- Total
목록Git (7)
빨간색코딩
커밋을 잘못했고 푸쉬까지 했을때 복구git reset --hard HEAD^ git push -u origin +master git pull 파일 이름변경작업 디렉토리에 있는 파일의 이름을 변경 할 때는 git mv 명령어를 사용git mv 원래이름 바꿀이름 git 사용도중에 gitignore 설정중간에 gitignore 파일을 설정하면 git status 해도 여전히 남아있는데, 이럴 때 다음과 같이 실행하면 적용된다.git rm -r --cached . git add . git commit git push 원격저장소 브랜치 가져오기git clone을 통해 로컬로 가져오면 master 브랜치만 가져오는 듯. 협업을 위해 개발브랜치를 가져와야한다면..!!클론할 때 브랜치명으로 따오기 : git clone..
이전 포스팅(http://sjh836.tistory.com/37)에서도 정리했지만, 과 후배들에게 git에 대해 발표자료를 준비하다보니 시각적으로 좀더 보이는게 필요했다.. 명령어를 쳐보며 직접 git object들이 생성되가는 것을 본다면 git의 원리를 좀더 쉽게 이해할 수 있지 않을까 한다. git은 4개의 object로 관리한다. 객체명은 SHA1로 40자리로 해쉬된다. 따라서 내용이 같으면 객체명이 같다. 객체들은 .git/objects에 위치한다. 내용을 까볼려면 git cat-file –p 객체명 으로 보면된다. blob tree commit tag 구조도 시나리오 test 디렉터리에 git init를 한 뒤에, hello.txt를 만들고 "안녕 나는 공부중이야" 를 저장한다. 그 뒤 git..
깃허브에서 이모티콘이 달린 repo를 본 적이 있을 것이다. 이런거 처럼!!! (내꺼...오늘 삘받아서 꾸몄다ㅋㅋㅋ) 링크: https://www.webpagefx.com/tools/emoji-cheat-sheet/ 이모티콘 누르면 copy가 되고 그거를 Description Edit 에 추가하면 된다.
https://www.gitignore.io/ 를 가면 미리만들어진 파일을 받을 수 있다. 작성법 기호 의미 # 주석 ! 예외 / 디렉터리를 의미 *.exe 확장자 exe파일을 모두 무시 A/*.exe A 디렉터리 안에 있는 확장자 exe파일을 모두 무시 .gitignore 은 앞으로 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일이다. 따라서 이미 버전 관리에 포함되어 있는 파일들을 .gitigore 파일에 기록한다고 해서 Git이 알아서 버전 관리에서 제외 하지는 않는다. 이 경우에는 수동으로 해당 파일들을 버전 관리에서 제외시켜줘야 하는데 git bash에서 git rm --cached 를 입력하면 적용된다
1. 브랜치로 일하기현업에서는 이슈를 해결하기위해 이슈마다 브랜치를 딴다. 이렇게 딴 브랜치로 이슈를 해결한 후 master에서 이슈브랜치를 병합하는 것을 Fast-forward 방식이라고 한다. 실제 master 브랜치는 커밋 object가 생성되지 않지만, 포인터를 앞으로 옮긴다. (fast-forward빨리감기라고 함)별도의 커밋을 갖고있는 master브랜치와 이미 분기된 다른 브랜치와 merge할 때는 fast-forward 방식이 아니다. 이때 git은 공통 조상을 찾고 3way-merge를 이용하여 갈라진 커밋객체를 합치고 새 커밋객체를 만든다. 2. 충돌해결같은 파일(=A)의 같은 코드를 각자 브랜치(로컬과 원격저장소가 될수도 있다)로 작업(commit)을 하고 merge를 할 때 충돌이 발..
git의 원리흐름도git의 object들이 working디렉터리에서 index를 거쳐 repo까지 어떤 명령어로 어떻게 움직이는지 원리를 정리해봤다. 이제 아래그림을 완벽히 이해할 수 있을 거다!! 1. git init.git의 초기구성HEAD config description /branches /hooks /objects /refs 2. git addgit add를 했을때 index(=stage area,tree구조)에 object이름과 실제파일이름이 추가되고(추적등록) objects에 blob타입으로 파일내용이 추가된다.같은 파일이라도 파일내용이 달라지면 새로운 object가 생긴다.object의 이름은 SHA1로 HASH된다. 즉 파일내용이 같으면 object명이 같다.3. git commitgit..
1. Git같은 버전관리시스템이 나오게 된 배경- 파일이나 폴더를 편집할 때 작업을하면서 아래 사진처럼 번잡하게한다.- 만약 여러명이 공유한 파일을 편집한다면 저장할때 동기화문제가 있다.- 이와같은 문제를 해결하기위해 git이 탄생. 2. git을 이용한 버전관리 - 소스 코드가 변경된 이력을 쉽게 확인 가능- 특정 시점에 저장된 버전으로 되돌아 갈 수 있다.- 동시저장할때 누군가 편집한 내용과 충돌한다면, 경고메시지 발생. 내용덮어쓰는 실수가 없다.- 매번 백업용 파일 복사본을 만들 필요가 없다.3. 초기설정: ~/.gitconfig 에 저장된다git config --global user.name 자신의 닉네임git config --global user.email 자신의 이메일4. 명령어 도움말 보는법..