728x90
반응형

개발관련/Git 300

Git에서 파일을 이동 / 이름 변경하고 기록을 유지하는 방법

질문 : Git에서 파일을 이동 / 이름 변경하고 기록을 유지할 수 있습니까? Git에서 프로젝트 하위 트리의 이름을 바꾸거나 이동하고 싶습니다. /project/xyz ...에 /components/xyz 일반 git mv project components xyz project 대한 모든 커밋 기록이 손실됩니다. 역사가 유지되도록 이동하는 방법이 있습니까? 답변 Git은 커밋으로 작업을 유지하는 대신 이름 바꾸기를 감지 git mv 또는 mv 를 사용하는지 여부는 중요하지 않습니다. log 명령은 --follow 인수를 사용합니다. 즉, 휴리스틱을 사용하여 유사한 콘텐츠를 검색합니다. http://git-scm.com/docs/git-log 전체 기록을 조회하려면 다음 명령을 사용하십시오. git lo..

개발관련/Git 2021.06.16

git rebase 실행 취소

질문 : git rebase 실행 취소 누구든지 git rebase를 쉽게 실행 취소하는 방법을 알고 있습니까? 떠오르는 유일한 방법은 수동으로 진행하는 것입니다. git checkout the commit parent to both the branch 그런 다음 거기에서 임시 분기를 만듭니다. 모든 커밋을 손으로 체리 선택 내가 리베이스 한 브랜치를 수동으로 생성 한 브랜치로 교체 내 현재 상황에서는 두 지점에서 커밋을 쉽게 찾을 수 있기 때문에 작동 할 것입니다 (하나는 내 물건이고 다른 하나는 동료의 물건이었습니다). 그러나 내 접근 방식은 저에게 차선책이며 오류가 발생하기 쉽습니다 (내 자신의 브랜치 중 2 개를 방금 리베이스했다고 가정 해 보겠습니다). 어떤 아이디어? 설명 : 많은 커밋이 재생..

개발관련/Git 2021.06.15

Git-모든 곳에서 node_modules 폴더 무시

질문 : Git-모든 곳에서 node_modules 폴더 무시 여러 다른 프로젝트를 포함하는 프로젝트가 있습니다. 주요 프로젝트 미니 프로젝트 1 미니 프로젝트 2 모두 포함하는 node_modules 폴더. 루트 폴더에서 시작하는 위치에 관계없이 git이 폴더를 무시하기를 원합니다. 다음과 같이 .gitignore에 추가하십시오. *node_modules/* 답변 이걸 더해 node_modules/ .gitignore node_modules 하여 현재 폴더 및 모든 하위 폴더에서 node_modules라는 모든 디렉토리를 무시합니다. 출처 : https://stackoverflow.com/questions/29820791/git-ignore-node-modules-folder-everywhere

개발관련/Git 2021.06.14

Git에서 파일의 일부만 커밋

질문 : Git에서 파일의 일부만 커밋Git에서 파일을 변경할 때 일부 변경 사항 만 커밋하려면 어떻게해야합니까?예를 들어 파일에서 변경된 30 줄 중 15 줄만 커밋 할 수 있습니까?답변git add --patch (또는 -p 를 사용할 수 있으며, git은 파일을 합리적이라고 생각하는 "hunks"(파일의 일부)로 분해하기 시작합니다. 그러면 다음 질문이 표시됩니다.Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]? 다음은 각 옵션에 대한 설명입니다.y 다음 커밋을 위해이 덩어리를 준비n 다음 커밋을 위해이 덩어리를 준비하지 마십시오.q 종료; 이 덩어리 또는 나머지 덩어리를 준비하지 마십시오.상기 파일에이 덩어리와 이후의 모든 심술쟁이 무대d 파일에서이 덩어리 또는 이후 덩..

개발관련/Git 2021.06.13

새 저장소에 대한 'git push'에 원격 원본이 이미 있습니다.

질문 : 새 저장소에 대한 'git push'에 원격 원본이 이미 있습니다. git@github.com:myname/oldrep.git 위치에 프로젝트가 있습니다. 이제 모든 코드를 다른 위치 인 git@github.com:newname/newrep.git 의 새 저장소로 푸시하고 싶습니다. 다음 명령을 사용했습니다. git remote add origin git@github.com:myname/oldrep.git 그러나 나는 이것을 받고있다 : 치명적 : 원격 출처가 이미 존재합니다. 답변 "origin"을 사용할 수 없기 때문에이 오류가 발생합니다. "origin"은 명령의 일부가 아닌 규칙입니다. "origin"은 원격 저장소의 로컬 이름입니다. 예를 들어 다음과 같이 작성할 수도 있습니다. git..

개발관련/Git 2021.06.13

기존 Git 저장소를 다른 저장소로 가져 오는 방법

질문 : 기존 Git 저장소를 다른 저장소로 가져 오는 방법은 무엇입니까? XXX 라는 폴더에 Git 저장소가 있고 YYY 라는 두 번째 Git 저장소가 있습니다. XXX 저장소를 ZZZ 라는 하위 디렉토리로 YYY 저장소로 가져오고 모든 XXX 의 변경 내역을 YYY에 추가하고 싶습니다. 이전 폴더 구조 : ├── XXX │ ├── .git │ └── (project files) └── YYY ├── .git └── (project files) 다음 이후의 폴더 구조 : YYY ├── .git

개발관련/Git 2021.06.13

GitHub에서 단일 파일 다운로드

질문 : GitHub에서 단일 파일 다운로드대부분의 개발자, 개발자는 VCS를 사용하고 일부는 Git을 사용하기를 바랍니다. 저장소의 단일 파일에 대한 다운로드 URL을 얻는 방법에 대한 팁이나 트릭이 있습니까?원시 파일을 표시하기위한 URL을 원하지 않습니다. 바이너리의 경우 아무것도 아닙니다.http://support.github.com/discussions/feature-requests/41-download-single-fileGitHub를 "다운로드 서버"로 사용할 수도 있습니까?Google 코드로 전환하기로 결정한 경우 여기에 언급 된 기능이 있습니까?아니면 오픈 소스 프로젝트를위한 무료 호스팅 및 VCS가 있습니까?답변Git은 저장소의 일부 다운로드를 지원하지 않습니다. 모두 다운로드해야합니다..

개발관련/Git 2021.06.12

커밋되지 않은 기존 작업을 Git의 새 분기로 이동

질문 : 커밋되지 않은 기존 작업을 Git의 새 분기로 이동새로운 기능에 대한 작업을 시작했고 잠시 코딩 한 후이 기능이 자체 브랜치에 있어야한다고 결정했습니다.커밋되지 않은 기존 변경 사항을 새 분기로 이동하고 현재 분기를 재설정하려면 어떻게합니까?새 기능에 대한 기존 작업을 유지하면서 현재 분기를 재설정하고 싶습니다.답변Git 2.23 checkout 의 과부하 사용 (브랜치 전환, 파일 복원, HEAD 분리 등)에서 발생하는 혼란을 없애기 switch이 버전의 Git부터 위의 명령을 다음으로 바꿉니다.git switch -c 동작은 동일하며 변경되지 않습니다.다음을 사용하십시오.git checkout -b 이렇게하면 현재 브랜치를 그대로두고 새 브랜치를 생성 및 체크 아웃하고 모든 변경 사항을 유지..

개발관련/Git 2021.06.11

Git의 루트 폴더에서만 파일을 제외하는 방법

질문 : Git의 루트 폴더에서만 파일을 제외하는 방법 .gitignore 파일을 사용하여 추가되는 일부 파일을 제외하는 config.php 파일이 여러 개 있으며 루트에있는 파일 중 하나만 제외하고 다른 파일은 수정 관리하에 있습니다. 이를 위해 .gitignore 에 무엇을 써야합니까? 답변 문서에서 : 패턴에 슬래시 /가 포함되어 있지 않으면 git은이를 셸 glob 패턴으로 취급하고 .gitignore 파일의 위치에 상대적인 경로 이름과 일치하는지 확인합니다 (.gitignore가 아닌 경우 작업 트리의 최상위 수준에 상대적). 파일). 선행 슬래시는 경로 이름의 시작과 일치합니다. 예를 들어, "/*.c"는 "cat-file.c"와 일치하지만 "mozilla-sha1 / sha1.c"와는 일치하..

개발관련/Git 2021.06.11

Git : 프로젝트 커밋 기록에서 삭제 된 파일을 찾는 방법

질문 : Git : 프로젝트 커밋 기록에서 삭제 된 파일을 찾는 방법은 무엇입니까? 옛날 옛적에 내 프로젝트에 지금 가져오고 싶은 파일이있었습니다. 문제는 내가 언제 삭제했는지, 어떤 경로에 있었는지 전혀 모른다는 것입니다. 이 파일이있을 때이 파일의 커밋을 어떻게 찾을 수 있습니까? 답변 정확한 경로를 모르면 사용할 수 있습니다. git log --all --full-history -- "**/thefile.*" 파일이있는 경로를 알고 있으면 다음을 수행 할 수 있습니다. git log --all --full-history -- 이것은 해당 파일을 건드린 모든 브랜치의 커밋 목록을 보여줍니다. 그런 다음 원하는 파일 버전을 찾아서 표시 할 수 있습니다. git show -- 또는 다음을 사용하여 작업 ..

개발관련/Git 2021.06.08

잘못된 Git 브랜치에 대한 커밋을 수정하는 방법

질문 : 잘못된 Git 브랜치에 대한 커밋을 수정하는 방법은 무엇입니까? 방금 잘못된 지점에 대해 완벽하게 잘 수행했습니다. 마스터 브랜치에서 마지막 커밋을 실행 취소 한 다음 동일한 변경 사항을 가져와 내 업그레이드 브랜치로 가져 오려면 어떻게해야합니까? 답변 아직 변경 사항을 푸시하지 않은 경우 소프트 리셋을 수행 할 수도 있습니다. git reset --soft HEAD^ 이것은 커밋을 되돌 리지만 커밋 된 변경 사항을 인덱스에 다시 넣습니다. 브랜치가 서로에 대해 상대적으로 최신 상태라고 가정하면 git은 다른 브랜치로 체크 아웃 할 수 있습니다. 그러면 간단히 커밋 할 수 있습니다. git checkout branch git commit -c ORIG_HEAD -c ORIG_HEAD 부분은 커밋..

개발관련/Git 2021.06.08

Git을 푸시하기 전에 여러 커밋 결합

질문 : Git을 푸시하기 전에 여러 커밋 결합 [중복] 내 로컬 저장소에 주제별로 유사한 커밋이 많이 있습니다. 원격으로 푸시하기 전에 단일 커밋으로 결합하고 싶습니다. 어떻게하나요? rebase 가 이것을한다고 생각하지만 문서를 이해할 수 없습니다. 답변 당신이하고 싶은 것은 git에서 "squashing"이라고한다. 이 작업을 수행 할 때 많은 옵션이 있지만 (너무 많습니까?) 푸시되지 않은 모든 커밋을 단일 커밋으로 병합하려면 다음과 같이하십시오. git rebase -i origin/master 그러면 다음과 같은 파일이있는 텍스트 편집기 ( -i 는 "대화 형")가 나타납니다. pick 16b5fcc Code in, tests not passing pick c964dea Getting clos..

개발관련/Git 2021.06.07

정수의 자릿수를 얻는 방법?

질문 : 정수의 자릿수를 얻는 방법?이 방법보다 정수의 자릿수를 얻는 더 깔끔한 방법이 있습니까?int numDigits = String.valueOf(1000).length(); 답변당신의 문자열 기반 솔루션은 완벽하게 괜찮습니다. "단순한"것은 없습니다. 수학적으로 숫자는 길이도없고 숫자도 없다는 것을 알아야합니다. 길이와 자릿수는 둘 다 특정 밑수, 즉 문자열에있는 숫자 의 물리적 표현의 속성입니다.로그 기반 솔루션은 문자열 기반 솔루션이 내부적으로 수행하는 것과 동일한 작업을 수행하며 (일부) 길이 만 생성하고 숫자를 무시하기 때문에 더 빠르게 수행합니다. 그러나 실제로 의도가 더 명확하다고 생각하지는 않습니다. 이것이 가장 중요한 요소입니다.출처 : https://stackoverflow.com..

개발관련/Git 2021.06.07

Git에서 파일 이름의 대소 문자 변경

질문 : Git에서 파일 이름의 대소 문자 변경 이전과 다른 대소 문자를 사용하도록 파일 이름을 바꾸려고합니다. git mv src/collision/b2AABB.js src/collision/B2AABB.js fatal: destination exists, source=src/collision/b2AABB.js, destination=src/collision/B2AABB.js 보시다시피 Git은 이것에 적합합니다. mv 명령을 사용하여 이름을 바꾸려고 시도했지만 Git은 이름 바꾸기를 선택하지 않습니다 (이름 바꾸기 또는 추적되지 않은 새 파일로). 같은 이름의 다른 대소 문자를 사용하도록 파일을 변경하려면 어떻게해야합니까? Z 쉘 (zsh) 4.3.15를 사용하는 Git 1.7.9.1과 함께 Mac ..

개발관련/Git 2021.06.06

GitHub에 푸시 할 수 없음-병합이 필요하다고 계속 말합니다.

질문 : GitHub에 푸시 할 수 없음-병합이 필요하다고 계속 말합니다. 저는 GitHub를 처음 사용합니다. 오늘 나는 GitHub에 코드를 푸시하려고 할 때 몇 가지 문제를 만났습니다. Pushing to git@github.com:519ebayproject/519ebayproject.git To git@github.com:519ebayproject/519ebayproject.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:519ebayproject/519ebayproject.git' hint: Updates were rejected because the tip ..

개발관련/Git 2021.06.05

Git 저장소의 원격 목록?

질문 : Git 저장소의 원격 목록? Git 저장소가 있습니다. 이 저장소에는 여러 원격 저장소가 있습니다. 해당 저장소에 속한 원격 저장소 목록을 어떻게 얻을 수 있습니까? git list --remotes 또는 이와 비슷한 것? 답변 git remote -v 명령을 사용하여 구성된 원격 URL 목록을 가져올 수 있습니다. 이렇게하면 다음과 같은 결과를 얻을 수 있습니다. base /home/***/htdocs/base (fetch) base /home/***/htdocs/base (push) origin git@bitbucket.org:*** (fetch) origin git@bitbucket.org:*** (push) 출처 : https://stackoverflow.com/questions/1018..

개발관련/Git 2021.06.04

“git clone git@remote.git”을 실행할 때 사용자 이름과 비밀번호를 제공하는 방법

질문 : “git clone git@remote.git”을 실행할 때 사용자 이름과 비밀번호를 어떻게 제공합니까? 다음과 같이 HTTPS 요청에 사용자 이름과 비밀번호를 제공하는 방법을 알고 있습니다. git clone https://username:password@remote 하지만 다음과 같이 리모컨에 사용자 이름과 비밀번호를 제공하는 방법을 알고 싶습니다. git clone git@remote.git 나는 이렇게 시도했다 : git clone username:password@git@remote.git git clone git@username:password@remote.git git clone git@remote.git@username:password 그러나 그들은 작동하지 않았습니다. 답변 Mic..

개발관련/Git 2021.06.03

커밋하기 전에 git에서 파일 diff를 보는 방법

질문 : 커밋하기 전에 git에서 파일 diff를 보는 방법 가끔씩 발생하는 일입니다. 하루나 이틀 동안 동시에 몇 가지 관련 변경 작업을 수행하고 있으며 커밋 할 시간이되면 특정 파일에서 변경된 내용을 잊어 버리게됩니다. (이것은 개인용 git repo이므로 커밋에 둘 이상의 업데이트가 있어도 괜찮습니다.) 체크인 예정인 로컬 파일과 해당 파일의 마지막 커밋 사이의 변경 사항을 미리 볼 수있는 방법이 있습니까? 다음과 같은 것 : git diff --changed /myfile.txt 그리고 다음과 같이 출력됩니다. line 23 (last commit): var = 2+2 (current): var = myfunction() + 2 line 149 (last commit): return var (cu..

개발관련/Git 2021.06.03

Git이 내 ssh 키 암호를 계속 묻습니다.

질문 : Git이 내 ssh 키 암호를 계속 묻습니다.나는 github 튜토리얼의 지시에 따라 키를 생성하고 github에 등록하고 명시 적으로 ssh-agent를 사용해 보았습니다. 그러나 git은 제가 풀이나 푸시를 할 때마다 제 암호를 계속 묻습니다.원인은 무엇일까요?답변다음을 사용하여 SSH 에이전트를 시작한 후 :eval $(ssh-agent) 다음 중 하나를 수행하십시오.여기에 개인 키를 추가하려면 : ssh-add 이렇게하면 암호를 한 번만 묻고 공개 키를 Github에 업로드 한 경우 푸시를 허용해야합니다. macOS에서 키를 영구적으로 추가하고 저장하려면 : ssh-add -K 이것은 사용자의 키 체인에 저장하여 닫았다가 다시 연 후에도 유지됩니다. Ubuntu (또는 동급)에 키를 영구..

개발관련/Git 2021.06.03

Git 태그의 이름을 바꾸는 방법

질문 : Git 태그의 이름을 어떻게 바꾸나요? 오늘 저는 프로젝트에 대한 로그를 살펴보고 얼마 전에 태그 이름을 찌푸렸다는 것을 깨달았습니다. 태그 이름을 바꾸는 방법이 있습니까? Google은 유용한 정보를 찾지 못했습니다. 태그 된 버전을 확인하고 새 태그를 만들 수 있다는 것을 깨달았습니다. 그러나 그것은 옳지 않은 태그 객체를 만드는 것 같습니다. 하나는 git tag -l 다른 모든 태그에 비해 순서가 맞지 않습니다. 그게 중요한지는 모르겠지만 새로운 태그 객체가 내가 원하는 것이 아니라고 믿게 만듭니다. 태그 이름이 문서와 일치하는 것만 신경 쓰지만, 올바른 방법이 있다고 가정하고 "올바른"작업을 수행하고 싶습니다. 답변 old 태그를 new 태그로 바꾸는 방법은 다음과 같습니다. git t..

개발관련/Git 2021.06.02

Git detached Head를 수정하는 방법

질문 : Git 분리 헤드는 어떻게 수정합니까? 내 저장소에서 몇 가지 작업을 수행하고 있었는데 파일에 로컬 변경 사항이 있음을 알았습니다. 더 이상 원하지 않았기 때문에 새 복사본을 체크 아웃 할 수 있다고 생각하면서 파일을 삭제했습니다. 나는 Git에 상응하는 것을하고 싶었다. svn up . git pull 사용이 작동하지 않는 것 같습니다. 무작위 검색을 통해 누군가 추천 한 사이트로 이동했습니다. git checkout HEAD^ src/ ( src 는 삭제 된 파일이 포함 된 디렉토리입니다). 이제 나는 detached Head가 있다는 것을 알게되었습니다. 나는 그것이 무엇인지 전혀 모른다. 어떻게 취소 할 수 있습니까? 답변 detached Head는 더 이상 브랜치에 있지 않으며 히스토리..

개발관련/Git 2021.06.02

원격 Git 브랜치를 확인하는 방법

질문 : 원격 Git 브랜치를 어떻게 확인합니까? test 라는 브랜치를 git push origin test 로 공유 저장소에 푸시했습니다. git branch -r 브랜치를 볼 수 있습니다. test 분기를 확인하려고합니다. 궁금한 점: 아무것도하지 않는 git checkout test git checkout origin/test 는 * (no branch) 합니다. 혼란 스럽습니다. 어떻게 "no branch"에있을 수 있습니까? 원격 Git 브랜치를 어떻게 확인합니까? 답변 Jakub의 대답은 실제로 이것에 대해 향상됩니다. Git 버전이 1.6.6 이상이고 하나의 리모컨으로 다음을 수행 할 수 있습니다. git fetch git checkout test 사용자 masukomi가 주석에서 지적했듯..

개발관련/Git 2021.06.01

Git을 사용하여 가장 최근 커밋을 새 브랜치로 이동

질문 : Git을 사용하여 가장 최근 커밋을 새 브랜치로 이동마스터로 커밋 한 마지막 몇 가지 커밋을 새 브랜치로 이동하고 해당 커밋이 이루어지기 전에 마스터를 다시 가져오고 싶습니다. 불행히도 내 Git-fu는 아직 충분히 강하지 않습니다.Ie 어떻게 갈 수 있습니까?master A - B - C - D - E 이에?newbranch C - D - E / master A - B 답변커밋을 기존 브랜치 로 옮기고 싶다면 다음과 같이 보일 것입니다.git checkout existingbranch git merge master git checkout master git reset --hard HEAD~3 # Go back 3 commits. You *will* lose uncommitted work. gi..

개발관련/Git 2021.06.01

로컬 저장소 브랜치를 원격 저장소 HEAD와 같이 재설정

질문 : 로컬 저장소 브랜치를 원격 저장소 HEAD와 같이 재설정 로컬 브랜치를 원격 저장소의 브랜치처럼 재설정하려면 어떻게해야합니까? 제가 한 것 : git reset --hard HEAD git status 실행하면 On branch master Changes to be committed: (use "git reset HEAD ..." to unstage) modified: java/com/mycompany/TestContacts.java modified: java/com/mycompany/TestParser.java 왜 '수정'되었는지 알려주시겠습니까? 이 파일을 건드리지 않았나요? 내가 그랬다면 그것들을 제거하고 싶습니다. 답변 분기를 원격 분기와 정확히 일치하도록 설정하는 작업은 두 단계로 수행..

개발관련/Git 2021.06.01

Git 저장소에 빈 디렉터리를 추가하는 방법

질문 : Git 저장소에 빈 디렉터리를 추가하려면 어떻게해야합니까? Git 저장소에 파일이없는 빈 디렉토리를 추가하려면 어떻게해야합니까? 답변 (저장소에서) 디렉토리를 (거의) 비워 두는 또 다른 방법은 다음 네 줄을 포함 .gitignore # Ignore everything in this directory * # Except this file !.gitignore 그러면 m104의 솔루션 에서 수행해야하는 방식으로 올바른 순서를 얻을 필요가 없습니다. 이는 또한 git 상태를 수행 할 때 해당 디렉토리의 파일이 "untracked"으로 표시되지 않는 이점을 제공합니다. @GreenAsJade 의 댓글을 지속적으로 만들기 : 나는이 솔루션이 질문이 요구 한 바를 정확하게 수행한다는 점에 주목할 가치가 ..

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