728x90
반응형

version-control 41

버전 제어 하에서 IPython 노트북 사용

질문 : 버전 제어 하에서 IPython 노트북 사용 IPython 노트북을 버전 관리하에 유지하기위한 좋은 전략은 무엇입니까? 노트북 형식은 버전 관리에 매우 적합합니다. 노트북과 출력을 버전 관리하려는 경우이 방식이 매우 잘 작동합니다. 특히 영화와 플롯의 경우 큰 이진 얼룩이 될 수있는 셀 출력 (일명 "빌드 제품")을 제외하고 입력 만 버전 제어하려는 경우 성가심이 발생합니다. 특히 다음과 같은 좋은 워크 플로를 찾으려고합니다. 출력 포함 또는 제외 중에서 선택할 수 있습니다. 원하지 않는 경우 실수로 출력을 커밋하는 것을 방지합니다. 로컬 버전으로 출력을 유지할 수 있습니다. 버전 제어 시스템을 사용하여 입력이 변경된시기를 볼 수 있습니다 (즉, 입력 만 제어하고 로컬 파일에 출력이있는 경우 입..

기록이있는 SVN 저장소를 새 Git 저장소로 마이그레이션하는 방법

질문 : 기록이있는 SVN 저장소를 새 Git 저장소로 마이그레이션하려면 어떻게해야합니까? 나는 Git 매뉴얼, FAQ, Git-SVN 크래시 코스 등을 읽었으며 모두 이것 저것 설명하지만 다음과 같은 간단한 지침은 어디에서도 찾을 수 없습니다. SVN 저장소 : svn://myserver/path/to/svn/repos Git 저장소 : git://myserver/path/to/git/repos git-do-the-magic-svn-import-with-history \ svn://myserver/path/to/svn/repos \ git://myserver/path/to/git/repos 나는 그것이 그렇게 단순 할 것이라고 기대하지 않으며 단일 명령이 될 것이라고 기대하지 않습니다. 그러나 나는 그..

개발관련/Git 2021.12.29

git composer.lock을 버전 제어에 적용 해야 할까?

질문 : composer.lock을 버전 제어에 적용해야합니까? 저장소가있는 응용 프로그램에서 사용되는 composer.lock 과 약간 혼동됩니다. 많은 사람들이 저장소에서 composer.lock .gitignore 해서는 안된다고 말하는 것을 보았습니다. 내 개발 환경에서 라이브러리를 업데이트하면 새 composer.lock 이 생기지 만 프로덕션으로 업데이트 할 수 없습니다. 이 파일에 충돌이 발생하지 않습니까? 답변 libs를 업데이트하는 경우 잠금 파일도 커밋해야합니다. 기본적으로 프로젝트가 사용중인 특정 버전의 라이브러리에 잠겨 있음을 나타냅니다. 변경 사항을 커밋하고 누군가가 코드를 가져와 종속성을 업데이트하는 경우 잠금 파일은 수정되지 않아야합니다. 수정 되었다면 새로운 버전이 있다는 뜻..

개발관련/Git 2021.12.29

하나의 명령으로 git 루트 디렉토리를 얻는 방법

질문 : 하나의 명령으로 git 루트 디렉토리를 얻는 방법이 있습니까? Mercurial에는 다음을 통해 루트 디렉토리 (.hg 포함)를 인쇄하는 방법이 있습니다. hg root .git 디렉토리를 포함하는 디렉토리를 가져 오는 것과 동등한 것이 git에 있습니까? 답변 예: git rev-parse --show-toplevel Git 명령을 더 직접 복제하려면 별칭을 만들 수 있습니다. git config --global alias.root 'rev-parse --show-toplevel' 이제 git root hg root 처럼 작동합니다. 참고 : 하위 모듈에서는 상위 저장소가 아닌 하위 모듈 의 루트 디렉토리를 표시합니다. Git> = 2.13 이상을 사용하는 경우 서브 모듈이 수퍼 프로젝트의 루..

개발관련/Git 2021.12.15

파일을 특정 개정으로 재설정 하거나 되돌리는 방법

질문 : 파일을 특정 개정으로 재설정하거나 되돌리려면 어떻게합니까? 파일 그룹의 일부로 몇 번 커밋 된 파일을 일부 변경했지만 이제 변경 사항을 이전 버전으로 재설정 / 되돌리려 고합니다. git diff 와 함께 git log 를 작성했지만 파일을 과거의 상태로 되 돌리는 방법을 모릅니다. 답변 원하는 커밋의 해시가 c5f567 이라고 가정합니다. git checkout c5f567 -- file1/to/restore file2/to/restore git checkout man 페이지에서 자세한 정보를 제공합니다. c5f567 이전의 커밋으로 되돌리려면 ~1 추가합니다 (여기서 1은 되돌리고 자하는 커밋의 수이며 무엇이든 가능). git checkout c5f567~1 -- file1/to/restor..

개발관련/Git 2021.12.12

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

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

개발관련/Git 2021.12.11

브랜치를 변경하지 않고 다른 Git 브랜치에서 파일보기

질문 : 브랜치를 변경하지 않고 다른 Git 브랜치에서 파일보기 브랜치를 체크 아웃하지 않고 git 브랜치에서 파일을 열 수 있습니까? 어떻게? 본질적으로 나는 항상 분기를 전환하지 않고 내 github 페이지 분기에서 파일을 열 수 있기를 원합니다. 나는 그것을 수정하고 싶지 않고 단지보고 싶다. 답변 이것은 작동합니다. git show branch:file 여기서 branch 는 모든 ref (branch, tag, HEAD, ...)가 될 수 있고 file 은 파일의 전체 경로입니다. 그것을 내보내려면 사용할 수 있습니다. git show branch:file > exported_file 몇 가지 관련 질문에 대한 VonC 의 답변도 살펴 봐야합니다. Git의 특정 개정판에서 단일 파일을 검색하는 ..

개발관련/Git 2021.12.11

같은 컴퓨터에 여러 github 계정을 활용하는 방법

질문 : 같은 컴퓨터에 여러 github 계정이 있습니까? 내 컴퓨터에서 내 실제 "작업"저장소와 git 허브의 개인 저장소 모두에서 작업하려고합니다. 직장 계정이 먼저 설정되었고 모든 것이 완벽하게 작동합니다. 그러나 내 개인 계정은 다른 계정 / 이메일로 설정된 내 개인 저장소로 푸시 할 수 없습니다. 내 작업 키를 개인 계정에 복사하려고했지만 키는 하나의 계정에만 연결할 수 있기 때문에 오류가 발생합니다. 각각의 github 자격 증명에서 두 계정을 어떻게 푸시 / 풀 수 있습니까? 답변 여러 SSH 키 쌍으로 SSH 설정을 구성하기 만하면됩니다. 이 링크는 따라 가기 쉽습니다 (Eric에게 감사합니다) : http://code.tutsplus.com/tutorials/quick-tip-how-to..

개발관련/Git 2021.12.09

Git 커밋의 변경 사항을 확인하는 방법

질문 : Git 커밋의 변경 사항을 어떻게 볼 수 있습니까? git diff COMMIT 수행하면 해당 커밋과 HEAD (내가 아는 한) 사이의 변경 사항을 볼 수 있지만 해당 단일 커밋에 의해 변경된 내용을보고 싶습니다. diff / log 에서 해당 출력을 제공하는 명백한 옵션을 찾지 못했습니다. 답변 COMMIT 해시에 대한 차이점을 보려면 다음과 같이하십시오. COMMIT 는 커밋의 해시입니다. git diff COMMIT~ COMMIT 당신의 차이가 표시됩니다 COMMIT 의 조상과는 COMMIT . ~ 표기법과 그 친구들에 대한 명령어와 gitrevisions 에 대한 자세한 내용은 git diff 의 man 페이지를 참조하십시오. 또는 git show COMMIT 는 매우 유사한 작업을 수행..

개발관련/Git 2021.12.09

Git에서 HEAD, 작업 트리 및 인덱스의 차이점

질문 : Git에서 HEAD, 작업 트리 및 인덱스의 차이점은 무엇입니까? 누군가 Git에서 HEAD, 작업 트리 및 인덱스의 차이점을 말할 수 있습니까? 내가 이해하는 바에 따르면 그들은 모두 다른 지점의 이름입니다. 내 가정이 맞습니까? 나는 이것을 찾았다 단일 git 저장소는 임의의 수의 브랜치를 추적 할 수 있지만 작업 트리는 브랜치 중 하나 ( "현재"또는 "체크 아웃"브랜치)에만 연결되고 HEAD는 해당 브랜치를 가리 킵니다. 이것은 HEAD와 작업 트리가 항상 동일하다는 것을 의미합니까? 답변 해당 주제에 대한 몇 가지 다른 좋은 참고 자료 : 내 Git 워크 플로 색인을 체크 포인트 로 사용합니다. 내가 잘못 될 수있는 변화를 만들려고 할 때-내가 따라갈 수 있는지 또는 개념적으로 요구되는..

개발관련/Git 2021.12.07

Git에서 단계화 되지 않은 변경 사항을 폐기하는 방법

질문 : Git에서 단계 화되지 않은 변경 사항을 어떻게 폐기합니까? 인덱스에없는 작업 복사본의 변경 사항을 삭제하려면 어떻게합니까? 답변 또 다른 빠른 방법은 다음과 같습니다. git stash save --keep-index --include-untracked --include-untracked 를 포함 할 필요가 없습니다. 그 후 원하는 경우 git stash drop 명령을 사용하여 해당 숨김을 삭제할 수 있습니다. 출처 : https://stackoverflow.com/questions/52704/how-do-i-discard-unstaged-changes-in-git

개발관련/Git 2021.12.06

Git에서 한 파일의 작업 복사본 수정을 취소하는 방법

질문 : Git에서 한 파일의 작업 복사본 수정을 취소 하시겠습니까? 마지막 커밋 후 작업 복사본에서 많은 파일을 수정했지만 가장 최근 커밋과 동일한 상태로 재설정하는 것처럼 해당 파일 중 하나의 변경 사항을 취소하고 싶습니다. 그러나 저는 그 파일 하나의 작업 복사본 변경 사항 만 실행 취소하고 싶습니다. 어떻게하나요? 답변 당신이 사용할 수있는 git checkout -- file -- (nimrodm이 제안한대로) 없이도 할 수 있지만 파일 이름이 브랜치 나 태그 (또는 다른 개정 식별자)처럼 보이면 혼동 될 수 있으므로 -- 사용하는 것이 가장 좋습니다. 특정 버전의 파일을 확인할 수도 있습니다. git checkout v1.2.3 -- file # tag v1.2.3 git checkout st..

개발관련/Git 2021.12.05

주어진 커밋을 포함하는 분기를 나열하는 방법

질문 : 주어진 커밋을 포함하는 분기를 나열하는 방법은 무엇입니까? 주어진 커밋을 포함하는 분기를 찾기 위해 git을 쿼리하려면 어떻게해야합니까? gitk 는 일반적으로 브랜치가 너무 많지 않은 경우 목록을 나열합니다.이 경우 "다수 (38)"또는 이와 유사한 것으로 표시됩니다. 전체 목록 또는 적어도 특정 분기에 커밋이 포함되어 있는지 알아야합니다. 답변 git-branch 매뉴얼 페이지에서 : git branch --contains 지정된 커밋을 포함하는 분기 만 나열합니다 (지정되지 않은 경우 HEAD). --list 의미합니다. git branch -r --contains "원격 분기와 직접 관계가있는 로컬 분기"인 원격 추적 분기 도 나열합니다 ( 아래 user3941992 의 답변에서 언급 됨..

개발관련/Git 2021.12.04

병합 된 모든 Git 브랜치를 삭제하는 방법

질문 : 병합 된 모든 Git 브랜치를 어떻게 삭제할 수 있습니까? 나는 많은 Git 브랜치를 가지고 있습니다. 이미 병합 된 분기를 삭제하려면 어떻게합니까? 하나씩 삭제하는 대신 모두 삭제하는 쉬운 방법이 있습니까? 답변 최신 정보: 워크 플로에 가능한 조상이있는 경우 마스터 및 개발과 같은 다른 분기를 제외하도록 추가 할 수 있습니다. 일반적으로 나는 "sprint-start"태그에서 분기하고 master, dev 및 qa는 조상이 아닙니다. 먼저 원격에서 병합 된 로컬 추적 분기를 나열하십시오 (다른 답변에서 제안한대로 -r 플래그를 사용하여 모든 원격 추적 분기를 나열하는 것을 고려할 수 있습니다). git branch --merged 제거하고 싶지 않은 분기가 거의 표시되지 않을 수 있습니다. ..

개발관련/Git 2021.11.26

git이 항상 특정 지점에서 가져 오도록 하는 방법

질문 : git이 항상 특정 지점에서 가져 오도록하려면 어떻게해야합니까? 나는 자식 마스터는 아니지만 몇 가지 다른 프로젝트에서 얼마 동안 작업 해 왔습니다. 각 프로젝트에서 저는 항상 git clone [repository] 하고 그 시점부터는 물론 눈에 띄는 변경 사항이없는 한 git pull 최근에는 이전 브랜치로 돌아 가야했고 git checkout 4f82a29 . 다시 당길 준비가되었을 때 분기를 다시 마스터로 설정해야한다는 것을 알았습니다. 이제 똑바로 git pull을 사용하여 git pull git pull origin master 를 지정해야합니다. 이는 성가신 일이며 무슨 일이 일어나고 있는지 완전히 이해하지 못한다는 것을 나타냅니다. git pull 을 수행 할 수없는 변경된 사항과..

개발관련/Git 2021.11.26

Git mergetool을 생성할 때 .orig 파일을 생성하지 않는 방법

질문 : Git mergetool은 원하지 않는 .orig 파일을 생성합니다. Kdiff3 (및 내가 시도한 다른 병합 도구)로 병합 충돌 해결을 수행 할 때 해결시 *.orig 파일이 생성되는 것을 발견했습니다. 추가 파일을 만들지 않는 방법이 있습니까? 답변 git config 에서 가능한 솔루션 : git config --global mergetool.keepBackup false 병합을 수행 한 후 충돌 마커가있는 원본 파일을 .orig 확장자를 가진 파일로 저장할 수 있습니다. 이 변수가 false 로 설정되면이 파일이 보존되지 않습니다. 기본값은 true (예 : 백업 파일 유지). 대안은이 gitguru 기사 에서 제안한대로 해당 파일을 추가하거나 무시하지 않는 것입니다. git merget..

개발관련/Git 2021.11.18

git reset --hard HEAD ~ 1을 실행 취소 하는 방법

질문 : git reset --hard HEAD ~ 1을 어떻게 실행 취소 할 수 있습니까? 다음 명령으로 인한 변경 사항을 취소 할 수 있습니까? 그렇다면 어떻게? git reset --hard HEAD~1 답변 Pat Notz가 맞습니다. 며칠 이내에 커밋을 되돌릴 수 있습니다. git은 새로운 blob을 제거하도록 명시 적으로 지시하지 않는 한 약 한 달 정도 후에 만 가비지 수집을 수행합니다. $ git init Initialized empty Git repository in .git/ $ echo "testing reset" > file1 $ git add file1 $ git commit -m 'added file1' Created initial commit 1a75c1d: added file..

개발관련/Git 2021.11.17

가장 최근 커밋으로 정렬 된 Git 브랜치 목록을 얻는 방법

질문 : 가장 최근 커밋으로 정렬 된 Git 브랜치 목록을 얻으려면 어떻게해야합니까? 맨 위에 "가장 최신"분기가있는 Git 저장소의 모든 분기 목록을 얻고 싶습니다. 여기서 "가장 최신"분기는 가장 최근에 커밋 된 분기입니다 (따라서 하나 일 가능성이 더 높습니다). 나는 주목하고 싶다). Git을 사용하여 (a) 최신 커밋별로 분기 목록을 정렬하거나 (b) 기계 판독 가능한 형식으로 각 분기의 마지막 커밋 날짜와 함께 분기 목록을 가져올 수있는 방법이 있습니까? 최악의 경우, 항상 git branch 를 실행하여 모든 분기 목록을 가져오고 출력을 구문 분석 한 다음 git log -n 1 branchname --format=format:%ci for each one, to get each branch..

개발관련/Git 2021.11.16

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 저장소를 베어 저장소로 어떻게 변환 할 수 있습니까? 주요 차이점은 다음과 같습니다. 일반 Git 저장소에는 모든 관련 데이터와 작업 사본을 구성하는 다른 모든 파일이 포함 된 저장소 내부에 .git 베어 Git 저장소에는 작업 복사본이 없으며 폴더 ( repo.git 라고 부름)에는 실제 저장소 데이터가 포함되어 있습니다. 답변 간단히 말해서 repo 의 내용을 repo/.git 의 내용으로 바꾼 다음 저장소에 이제 베어 저장소라고 알립니다. 이렇게하려면 다음 명령을 실행하십시오. cd repo mv .git ../repo.git # renaming just for clarity cd .. rm -fr repo cd..

개발관련/Git 2021.11.12

Mercurial과 Git의 차이점

질문 : Mercurial과 Git의 차이점은 무엇입니까? Windows (msysGit 사용)에서 얼마 동안 git을 사용해 왔으며 분산 소스 제어에 대한 아이디어가 마음에 듭니다. 최근에 Mercurial (hg)을 살펴 봤는데 흥미로워 보입니다. 그러나 나는 hg와 git의 차이점에 대해 머리를 감쌀 수 없습니다. 누구든지 git과 hg를 나란히 비교 했습니까? 팬보이 토론에 뛰어 들지 않고도 hg와 git이 다른 점을 알고 싶습니다. 답변 다음 기사가 도움이 될 수 있습니다. Git vs. Mercurial : Please Relax (Git는 MacGyver이고 Mercurial은 James Bond) Mercurial과 Git의 차이점 편집 : Git과 Mercurial을 유명인과 비교하는 것..

개발관련/Git 2021.11.11

git이 자체 서명 된 인증서를 수락하도록 하는 방법

질문 : git이 자체 서명 된 인증서를 수락하도록하려면 어떻게해야합니까? Git을 사용하여 자체 서명 된 인증서를 수락하도록 지시하는 방법이 있습니까? https 서버를 사용하여 git 서버를 호스팅하고 있지만 현재 인증서는 자체 서명되어 있습니다. 처음으로 저장소를 만들려고 할 때 : git push origin master -f 오류가 발생합니다. error: Cannot access URL https://the server/git.aspx/PocketReferences/, return code 22 fatal: git-http-push failed 답변 특정 인증서를 영구적으로 수락하려면 다음과 같이 하십시오. http.sslCAPath 또는 http.sslCAInfo 시도하십시오. Adam Sp..

개발관련/Git 2021.11.02

git 'pull request'가 'push request'가 아닌 이유

질문 : git 'pull request'가 'push request'가 아닌 이유는 무엇입니까? 브랜치를 공식 저장소와 병합하는 데 사용되는 용어는 '풀 요청'입니다. 변경 사항을 공식 저장소로 푸시하도록 요청하는 것처럼 보이므로 혼란 스럽습니다. 푸시 요청이 아닌 풀 요청이라고하는 이유는 무엇입니까? 답변 리포지토리에 변경된 코드가 있고이를 대상 리포지토리로 이동하려면 다음을 수행하십시오. "Push"는 대상 저장소 ( git push )에 변경 사항을 강제하는 것입니다. "Pull"은 변경 사항을 가져 오는 대상 저장소입니다 (다른 저장소에서 git pull "풀 요청"은 변경 사항을 가져 오기 위해 대상 저장소를 요청하는 것입니다. "푸시 요청"은 변경 사항을 푸시하도록 요청하는 대상 리포지토리입..

개발관련/Git 2021.10.21

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

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

개발관련/Git 2021.10.08

Git이 프록시 서버에서 작동 - "Request timed out"로 실패 해결 방법

질문 : Git이 프록시 서버에서 작동하도록하기- "요청 시간 초과"로 실패 Git에서 프록시 서버를 사용하려면 어떻게해야합니까? Git 서버에서 코드를 확인해야하는데 매번 "Request timed out"이 표시됩니다. 이 문제를 어떻게 해결합니까? 또는 프록시 서버를 어떻게 설정할 수 있습니까? 답변 사용할 명령 : git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080 proxyuser 를 프록시 사용자로 변경하십시오. proxypwd 를 프록시 암호로 변경하십시오. proxy.server.com 을 프록시 서버의 URL로 변경하십시오. 8080 을 프록시 서버에 구성된 프록시 포트로 변경하십시오. 이것은 htt..

개발관련/Git 2021.09.30
728x90
반응형