다른 브랜치의 특정 파일을 덮어쓰는 방법을 알아보자.
Case 1.
master
, dev
브랜치에 /folterA/app.js 파일이 다른 내용을 갖고 있다. dev
에 적용된 내용을 무시하고 master
브랜치의 app.js
파일을 덮어쓰려 한다.
Master branch
function main() {
}
Dev branch
function main() {
}
function dev() {
alert("something for dev");
}
diff
diff
를 사용하여 브랜치간 덮어쓰려는 파일의 내용을 확인한다.
$ git diff dev master folderA/app.js
diff --git a/folderA/app.js b/folderA/app.js
index 2e23261..d787174 100644
--- a/folderA/app.js
+++ b/folderA/app.js
@@ -1,7 +1,3 @@
function main() {
-
-}
-
-function dev() {
- alert("something for dev");
+
checkout 명령으로 덮어쓰기
git checkout
❗ 덮어쓰기 전에 파일의 절대경로를 알고 싶다면 아래 명령으로 확인한다.(와일드카드 적용)
$ git checkout master # 가져올 대상파일이 있는 브랜치
$ git ls-files **app.js
folderA/app.js
ls-files
로 확인한 패스/파일명을 원하는 브랜치(master)로 부터 checkout한다.
$ git checkout dev # 작업브랜치
$ git checkout master -- folderA/app.js
master
브랜치의app.js
로 덮어써진 내용을 확인한다.- 현재 브랜치에 checkout하는 파일이 없다면 신규로 checkout된다.
Case 2. 와일드카드 사용, 일괄 덮어쓰기
와일드 카드를 사용하여 해당 패턴에 만족하는 파일을 일괄 checkout한다.
D:.
│ README.md
│
├─folderA
│ app.js
│
└─folderB
test.py
test1_ml.py
test2_ml.py
- 위의 _ml.py패턴의 파일을 master브랜치로 부터 checkout한다.
$ git checkout master -- folderB/*_ml.py
반응형
'DevOps > Git' 카테고리의 다른 글
Git - 자주 사용하는 커맨드 등록(alias), 추천 커맨드 예제 (0) | 2022.01.19 |
---|---|
Git -로그 모든 브랜치 출력하기( 그래프, 정렬 옵션 ) (0) | 2022.01.13 |
Git - 로컬 브랜치와 리모트 브랜치 커밋 상태 비교( 브랜치 추적, 그래프 확인 ) (0) | 2022.01.12 |
Git - Remote 브랜치 안보일 때 해결방법 (0) | 2021.09.27 |
Git - Log 유용한 명령어 모음 ( 그래프, 변경 된 내용 검색, 특정 날짜 이후 검색 등 ) (0) | 2021.09.24 |