728x90
반응형

git-merge 15

체크 아웃을 사용하지 않고 Git 브랜치를 병합, 업데이트 및 가져 오기

질문 : 체크 아웃을 사용하지 않고 Git 브랜치를 병합, 업데이트 및 가져 오기 저는 A와 B라는 두 개의 분기가있는 프로젝트에서 작업합니다. 저는 일반적으로 분기 A에서 작업하고 분기 B의 항목을 병합합니다. 병합을 위해 일반적으로 다음을 수행합니다. git merge origin/branchB 그러나 분기 A와 먼저 병합하지 않고 때때로 분기를 체크 아웃 할 수 있으므로 분기 B의 로컬 복사본도 유지하고 싶습니다.이를 위해 다음을 수행합니다. git checkout branchB git pull git checkout branchA 분기를 앞뒤로 전환하지 않고도 하나의 명령으로 위의 작업을 수행 할 수있는 방법이 있습니까? 이를 git update-ref 를 사용해야합니까? 어떻게? 답변 짧은 답변..

개발관련/Git 2021.12.29

Git 병합, Git 리베이스 사용시기

질문 : Git 병합 대신 Git 리베이스를 언제 사용합니까? Git 리베이스와 Git 병합을 사용하는 것이 권장되는시기는 언제입니까? 성공적인 리베이스 후에도 병합해야합니까? 답변 Merge는 한 분기의 모든 변경 사항을 가져와 하나의 커밋에서 다른 분기로 병합합니다. Rebase는 분기 한 지점을 새 시작 지점으로 이동하고 싶다고 말합니다. 그렇다면 둘 중 하나를 언제 사용합니까? 단일 기능을 개발할 목적으로 분기를 만들었다 고 가정 해 보겠습니다. 이러한 변경 사항을 마스터로 다시 가져 오려면 병합을 원할 것입니다 (모든 중간 커밋을 유지하는 데 신경 쓰지 않음). 두 번째 시나리오는 개발을 시작한 다음 다른 개발자가 관련없는 변경을 수행 한 경우입니다. 리포지토리에서 현재 버전의 변경 사항을 기반..

개발관련/Git 2021.12.11

.gitignore 및 "The following untracked working tree files would be overwritten by checkout"

질문 : .gitignore 및 "체크 아웃시 다음 추적되지 않는 작업 트리 파일을 덮어 씁니다." 그래서 .gitignore 파일에 폴더를 추가했습니다. 일단 내가 git status 하면 나에게 알려줍니다. # On branch latest nothing to commit (working directory clean) 그러나 분기를 변경하려고하면 다음과 같은 결과가 나타납니다. My-MacBook-Pro:webapp marcamillion$ git checkout develop error: The following untracked working tree files would be overwritten by checkout: public/system/images/9/thumb/red-stripe.jp..

개발관련/Git 2021.12.06

Git에서 마스터에서 브랜치로 변경 사항 가져 오기

질문 : Git에서 마스터에서 브랜치로 변경 사항 가져 오기 내 저장소에는 내가 작업중인 aq master 에서 새로운 작업과 버그를 작성했습니다. aq 브랜치로 가져 오는 가장 좋은 방법은 무엇입니까? master 다른 새 브랜치를 만들고 aq ? 답변 아웃 확인 aq 지점을, 그리고에서 리베이스 master . git checkout aq git rebase master 출처 : https://stackoverflow.com/questions/5340724/get-changes-from-master-into-branch-in-git

개발관련/Git 2021.11.16

Git에서 충돌하는 파일을 나열하는 가장 간단한 방법

질문 : Git에서 충돌하는 파일을 나열하는 가장 간단한 방법은 무엇입니까? 충돌하는 파일의 일반 목록이 필요합니다. 다음보다 더 간단한 것이 있습니까? git ls-files -u | cut -f 2 | sort -u 또는: git ls-files -u | awk '{print $4}' | sort | uniq alias 을 설정할 수 있다고 생각하지만 전문가가 어떻게하는지 궁금합니다. 예를 들어 충돌을 자동 해결하기 위해 쉘 루프를 작성하는 데 사용합니다. mergetool.cmd 에 연결하여 루프를 대체 할 수 있습니까? 답변 git diff --name-only --diff-filter=U 출처 : https://stackoverflow.com/questions/3065650/whats-the-s..

개발관련/Git 2021.11.15

Git의 다른 브랜치에서 변경 사항을 선택적으로 병합하거나 선택하는 방법

질문 : Git의 다른 브랜치에서 변경 사항을 선택적으로 병합하거나 선택하려면 어떻게해야합니까? 두 개의 병렬 (현재 실험적인) 개발 분기가있는 새 프로젝트에서 Git을 사용하고 있습니다. master : 기존 코드베이스 가져 오기 및 일반적으로 확신하는 몇 가지 수정 사항 exp1 : 실험 브랜치 # 1 exp2 : 실험 분기 # 2 exp1 및 exp2 는 두 가지 매우 다른 아키텍처 접근 방식을 나타냅니다. 내가 더 나아갈 때까지 나는 어느 것이 (어느 쪽이든) 효과가 있는지 알 방법이 없습니다. 한 브랜치에서 진행할 때 가끔 다른 브랜치에서 유용 할 수있는 편집 내용이 있고 그 부분 만 병합하고 싶습니다. 하나의 개발 브랜치에서 다른 브랜치로 선택적 변경 사항을 병합하고 나머지는 남겨 두는 가장 ..

개발관련/Git 2021.11.11

git이 기본값으로 fast-forward merges을 수행하는 이유

질문 : git이 기본적으로 빨리 감기 병합을 수행하는 이유는 무엇입니까? 수은에서 왔기 때문에 가지를 사용하여 기능을 구성합니다. 당연히 내 역사에서도이 작업 흐름을보고 싶습니다. git을 사용하여 새 프로젝트를 시작하고 첫 번째 기능을 마쳤습니다. 기능을 병합 할 때 git이 빨리 감기를 사용한다는 것을 깨달았습니다. 즉, 가능하면 변경 사항을 마스터 브랜치에 직접 적용하고 브랜치를 잊어 버렸습니다. 그래서 미래를 생각 해보자.이 프로젝트에서 일하는 사람은 나 뿐이다. git의 기본 접근 방식 (빨리 감기 병합)을 사용하면 내 기록이 하나의 거대한 마스터 브랜치가됩니다. 내가 모든 기능에 대해 별도의 브랜치를 사용했다는 사실은 아무도 모릅니다. 왜냐하면 결국에는 거대한 마스터 브랜치 만 갖게 될 것이..

개발관련/Git 2021.11.04

충돌이 있는 Git 병합을 실행 취소하는 방법

질문 : 충돌이있는 자식 병합을 실행 취소하는 방법 나는 분기 mybranch1 있습니다. mybranch2 에서 갈래 mybranch1 및 변경에 만들어진 mybranch2 . 그런 다음 mybranch1 git merge --no-commit mybranch2 수행했습니다. 병합하는 동안 충돌이 있음을 보여줍니다. mybranch1 이 이전 상태로 돌아가도록 모든 것을 삭제 ( merge 명령)하고 싶습니다. 어떻게해야할지 모르겠습니다. 답변 최신 Git : git merge --abort 이렇게하면 작업 복사본을 병합 이전 상태로 재설정하려고합니다. 즉, 항상 안정적으로 수행 할 수는 없지만 병합 전부터 커밋되지 않은 변경 사항을 복원해야합니다. 일반적으로 커밋되지 않은 변경 사항과 병합해서는 안됩..

개발관련/Git 2021.11.04

Git 워크 플로 및 리베이스 및 병합 질문

질문 : Git 워크 플로 및 리베이스 및 병합 질문 저는 다른 개발자 한 명과 함께 프로젝트에서 몇 달 동안 Git을 사용해 왔습니다. 나는 SVN에 대해 수년간의 경험을 가지고 있기 때문에 관계에 많은 짐을 가져다 줄 것 같습니다. Git이 분기 및 병합에 탁월하다고 들었는데 지금까지는 보이지 않습니다. 물론 분기는 매우 간단하지만 병합하려고하면 모든 것이 지옥으로 이동합니다. 이제 저는 SVN에서 익숙해졌지만, 한 서브 파 버전 시스템을 다른 시스템으로 교환 한 것 같습니다. 내 파트너는 내 문제가 willy-nilly를 병합하려는 욕구에서 비롯되며 여러 상황에서 병합 대신 rebase를 사용해야한다고 말합니다. 예를 들어, 그가 작성한 워크 플로는 다음과 같습니다. clone the remote ..

개발관련/Git 2021.10.08

Git 브랜치를 마스터로 병합하는 가장 좋은 (가장 안전한) 방법

질문 : Git 브랜치를 마스터로 병합하는 가장 좋은 (가장 안전한) 방법은 무엇입니까? master 에서 새 브랜치가 생성되면 test 라고합니다. master 하거나 다른 브랜치를 생성하고 나중에 master 로 병합하는 여러 개발자가 있습니다. test 작업에 며칠이 걸리고 master 내부의 커밋으로 test 를 지속적으로 업데이트하고 싶다고 가정 해 보겠습니다. test 에서 git pull origin master 할 것입니다. 질문 1 : 이것이 올바른 접근 방식입니까? 다른 개발자는 내가 btw에서 작업 한 것과 동일한 파일로 쉽게 작업 할 수 있습니다. test 에 대한 내 작업 master 다시 병합 할 준비가되었습니다. 내가 생각할 수있는 두 가지 방법은 다음과 같습니다. A: git..

개발관련/Git 2021.09.17

다른 git 병합 전략 사용 시기

질문 : 다른 git 병합 전략을 언제 사용합니까? git-merge의 man 페이지에서 사용할 수있는 병합 전략이 많이 있습니다. resolve -3 방향 병합 알고리즘을 사용하여 두 개의 헤드 (즉, 현재 분기와 가져온 다른 분기) 만 해결할 수 있습니다. 교차 병합 모호성을주의 깊게 감지하려고 시도하며 일반적으로 안전하고 빠른 것으로 간주됩니다. 재귀 -3 방향 병합 알고리즘을 사용하여 두 개의 머리 만 해결할 수 있습니다. 3 방향 병합에 사용할 수있는 공통 조상이 둘 이상인 경우 공통 조상의 병합 트리를 생성하고이를 3 방향 병합에 대한 참조 트리로 사용합니다. 이는 Linux 2.6 커널 개발 기록에서 가져온 실제 병합 커밋에 대해 수행 된 테스트에서 잘못된 병합을 일으키지 않고 병합 충돌을 ..

개발관련/Git 2021.09.16

git pull 실행 취소, 저장소를 이전 상태로 가져 오는 방법

질문 : git pull 실행 취소, 저장소를 이전 상태로 가져 오는 방법 내 소스 / 리포지토리가 git pull을 수행하기 전의 이전 상태가되도록 git pull을 되돌 리거나 실행 취소하는 방법이 있습니까? 내가 원하지 않는 일부 파일을 병합했지만 나머지 파일 만 병합했기 때문에 이것을하고 싶습니다. 그래서, 그 파일을 되찾고 싶습니다. 가능합니까? 편집 : 설명을 위해 git merge를 실행 취소하고 싶습니다. 몇 가지 답을보고 나서 이렇게했습니다 git reflog bb3139b... HEAD@{0}: pull : Fast forward 01b34fa... HEAD@{1}: clone: from ...name... 이제 어떻게해야합니까? git reset --hard 해도 괜찮습니까? 다시는 ..

개발관련/Git 2021.09.16

'git merge'와 'git rebase'의 차이점

질문 : 'git merge'와 'git rebase'의 차이점은 무엇입니까?git merge 와 git rebase 의 차이점은 무엇입니까?답변원래 3 개의 커밋 A , B , C 가 있다고 가정합니다.그런 다음 개발자 Dan은 커밋 D 생성하고 개발자 Ed는 커밋 E 생성했습니다.분명히이 갈등은 어떻게 든 해결되어야합니다. 이를 위해 두 가지 방법이 있습니다.이동 :커밋 D 와 E 모두 여전히 여기에 있지만 D 와 E 모두에서 변경 사항을 상속하는 M 을 만듭니다. 그러나 이것은 많은 사람들이 매우 혼란스럽게 생각하는 다이아몬드 모양을 만듭니다.REBASE :실제 파일 내용이 M 과 동일한 커밋 R 생성합니다. 그러나 우리는 E 제거합니다 (점-소실 선으로 표시됨). 이러한 삭제로 인해 E 는 개발자..

개발관련/Git 2021.09.14

JavaScript에서 모든 문자열을 바꾸는 방법

질문 : JavaScript에서 모든 문자열을 바꾸는 방법내 JavaScript 코드에이 문자열이 있습니다."Test abc test test abc test test test abc test test abc" 하기:str = str.replace('abc', ''); 위의 문자열에서 abc 의 첫 번째 항목 만 제거하는 것 같습니다.모든 항목을 어떻게 바꿀 수 있습니까?답변업데이트 : 가장 많이 사용되는 브라우저의 최신 버전에서 다음과 같이 replaceAlllet result = "1 abc 2 abc 3".replaceAll("abc", "xyz"); // `result` is "1 xyz 2 xyz 3" 하지만 대상 브라우저가 먼저 지원을 추가했는지 확인하려면 먼저 또는 다른 호환성 표를 사용할 ..

GUID / UUID를 만드는 방법

질문 : GUID / UUID를 만드는 방법JavaScript에서 전역 적으로 고유 한 식별자를 만들려고합니다. 모든 브라우저에서 어떤 루틴을 사용할 수 있는지, 내장 난수 생성기를 "무작위"하고 시드했는지 등을 잘 모르겠습니다.GUID / UUID는 32 자 이상이어야하며 ASCII 범위에 있어야 전달시 문제가 발생하지 않습니다.답변RFC 4122 에 따르면 GUID (Globally Unique IDentifier)라고도하는 UUID (Universally Unique IDentifier)는 특정 고유성 보장을 제공하도록 설계된 식별자입니다.몇 줄의 JavaScript 코드에서 RFC 호환 UUID를 구현할 수 있지만 (예 : 아래 @broofa의 답변 참조) 몇 가지 일반적인 함정이 있습니다.잘못된..

728x90
반응형