일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- hash-object
- SpringBootApplication
- unmodified
- spring boot
- 자바스크립트
- docker daemon
- Server Off
- git push
- git rm
- staged
- Modified
- node
- 리눅스
- docker
- Auto-Importing
- Git 내부
- Spring
- Git내부
- commit
- Linux
- git
- git rm --cached
- npm
- node.js
- Dependency
- maven
- brew
- JS
- github
- Dependency Management
- Today
- Total
갓태희
[Git Issue] 특정 파일만 push 할수있는지 ? 본문
오픈톡에서 어떤분이 질문을 해주셨는데 요점은 특정 파일 혹은 폴더만 push 할수 있는지
여쭤보셨다. 나같은 경우 gid add *
으로 그냥 일일이 변경된 내용을 체크하기 귀찮아서 저 명령어를 통해 다 스테이징 영역에 올리는데 이렇게 다 스테이징 영역에 올려버리니까 커밋도 모든 파일이 되는 경우가 많았고 보통 push를 전체적으로 하지 부분만 해본적은 별로 없었던것 같아서 처음 저 말을 듣고 좀 당황했었다.
소스트리나 다른 내장되어있는 깃 툴을 이용하게 되면 자기가 스테이징하고싶은 파일을 쉽게 볼수 있고 버튼을 눌러서 일일이 하거나 복수선택으로 스테이징 할수있는데 커맨드로도 그렇게 물론 할수 있지만 귀찮아서 걍 다 올려버리는 경우가 많았던것 같다.
결론을 할수있다이며 git add
를 할때 자기가 push 하고싶은 파일들만 add하면 되고 add된 파일만 커밋해서 push 하면 된다.
여기서 중요한 개념은 스테이징 영역
에 올리는것은 git add
이며 이렇게 스테이징 된 파일들만 커밋할수 있다
는 것이며 커밋된 파일만 push 할수있다.
그럼 git pull
은 어떨까 ?? git pull
은 결론적으로 말하면 특정 파일만 pull한다라는 말 자체가 성립이 안된다.
왜냐하면 git pull은 파일을 가져오는게 아니라 커밋을 가져와서 내 로컬에 merge까지 하는것이다.
이게 무슨말이냐면
위의 사진은 Github
에 저장된 Commit 내역이다 이 커밋은 해시값으로 이루어져 있는데 오른쪽에 보면 5608352
이런 숫자가 보일텐데 이것들이 그 커밋의 해시 값이다 이 값은 git에서 SHA-1
이라는 알고리즘을 통해 자동으로 계산해주는 파일
이 아닌 값
이며 커밋은 각각 Staging된 변경 내역들을 저장하고있기 때문에 이것이 곧 Git이 Version Control할수 있는 이유가 된다. 근데 생각을 해보니 트릭을 써서 특정 파일만 받아오면 될것같다
어차피 이 커밋도 파일들의 변경사항의 정보를 가지고있는 것이므롤 내가 원하는 특정 파일만 상대방에게 push해달라고 하면 나는 그 파일의 변경내용만 pull 받아오면 되기때문에 안될건 없는것 같다.
'Git-Issue' 카테고리의 다른 글
[Git Issue] Source Tree Access deny (0) | 2021.05.31 |
---|---|
[Git Issue] Private Branch (0) | 2021.05.29 |
[Git Issue] 깃 한글출력 영어로바꾸기 (0) | 2021.05.29 |
[Git Issue] Mac Git version Update (깃허브아님) (0) | 2021.05.29 |
[Git Error] cannot load such file -- webrick (LoadError) (0) | 2021.05.24 |