728x90
반응형

git 301

git으로 푸시하려는 내용을 확인하는 방법

질문 : git로 푸시하려는 내용을 어떻게 볼 수 있습니까? git push 명령을 수행하면 푸시되는 내용을 볼 수있는 방법이 있습니까? 내가 그리는 것은 Github의 "pull request"기능의 "Files Changed"탭과 같은 것입니다. 풀 리퀘스트를 발행 할 때, 그들이 제 풀 리퀘스트를 수락하면 무엇이 풀리게 될지보고 볼 수 있습니다. 명령 줄은 괜찮지 만 위의 스크린 샷과 같은 일종의 GUI를 선호합니다. 답변 푸시 할 파일 목록을 보려면 다음을 실행하십시오. git diff --stat --cached [remote/branch] 예: git diff --stat --cached origin/master 푸시 할 파일의 코드 차이를 보려면 다음을 실행하십시오. git diff [rem..

개발관련/Git 2021.12.03

Git 관리 프로젝트의 모든 로컬 변경 사항을 이전 상태로 되돌리는 방법

질문 : Git 관리 프로젝트의 모든 로컬 변경 사항을 이전 상태로 되돌리려면 어떻게하나요? git init 실행 한 프로젝트가 있습니다. 몇 번의 커밋 후 모든 것이 최신 상태이며 로컬 변경 사항이 없음을 git status 그런 다음 몇 번의 연속 변경을 수행하고 모든 것을 버리고 원래 상태로 돌아가고 싶다는 것을 깨달았습니다. 이 명령이 나를 위해 해줄까요? git reset --hard HEAD 답변 작업 복사본의 변경 사항을 되돌리려면 다음과 같이하십시오. git checkout . 인덱스에 대한 변경 사항 (예 : 추가 한)을 되돌리려면 이렇게하십시오. 경고 이렇게하면 푸시되지 않은 모든 커밋이 마스터로 재설정됩니다! : git reset 커밋 한 변경 사항을 되돌리려면 다음을 수행하십시오. ..

개발관련/Git 2021.12.01

Pretty Git 분기 그래프

질문 : Pretty Git 분기 그래프 몇몇 책과 기사에 Git 브랜치와 커밋의 그래프가 정말 예쁘게 보이는 것을 보았습니다. Git 기록의 고품질 인쇄 가능 이미지를 만들려면 어떻게해야합니까? 답변 업데이트 2 : 훨씬 더 적절하기 때문에 Git의 Visualizing branch topology 질문에 대한이 답변의 개선 된 버전을 게시했습니다. 이 버전에는 작성자와 커미터 정보를 모두 보여주는 lg3 이 답변을 역사적인 (& rep, 인정할 것입니다) 이유로 남겨 두지 만 정말 삭제하고 싶은 유혹이 있습니다. 내 두 센트 ~/.gitconfig 파일에 두 개의 별칭이 있습니다. [alias] lg1 = log --graph --abbrev-commit --decorate --format=forma..

개발관련/Git 2021.12.01

특정 단어에 대한 Git 커밋 차이점 또는 내용을 grep하는 방법

질문 : 특정 단어에 대한 Git 커밋 차이점 또는 내용을 grep하는 방법 Git 코드 저장소에서 특정 단어가 포함 된 모든 커밋을 나열하고 싶습니다. 나는 이것을 시도했다 git log -p | grep --context=4 "word" 하지만 파일 이름을 반드시 돌려주는 것은 아닙니다 (검색 한 단어에서 5 줄 미만이 아닌 경우는 제외). git grep "word" 그러나 그것은 나에게 역사가 아닌 현재 파일만을 제공합니다. 특정 단어의 변경 사항을 추적 할 수 있도록 전체 기록을 검색하려면 어떻게합니까? 변경 사항을 추적하기 위해 코드베이스에서 단어 발생을 검색하려고합니다 (파일 기록에서 검색). 답변 커밋 메시지 에 주어진 단어가 포함 된 모든 커밋을 찾으려면 다음을 사용하십시오. $ git ..

개발관련/Git 2021.12.01

삭제 된 원격 브랜치로 origin에서 가져 오는 방법

질문 : 삭제 된 원격 브랜치로 오리진에서 가져 오시겠습니까? git fetch origin 및 origin에 삭제 된 브랜치가있을 때 내 저장소에서 업데이트하지 않는 것 같습니다. git branch -r 할 때 여전히 origin/DELETED_BRANCH 됩니다. 이 문제를 어떻게 해결할 수 있습니까? 답변 다음을 수행해야합니다. git fetch -p -p 또는 --prune 인수는 원격 분기의 로컬 데이터베이스를 업데이트합니다. 출처 : https://stackoverflow.com/questions/5751582/fetch-from-origin-with-deleted-remote-branches

개발관련/Git 2021.12.01

LF를 CRLF로 대체하는 Git

질문 : LF를 CRLF로 대체하는 자식 bash를 사용하여 Windows XP 시스템에서 git 실행 SVN에서 프로젝트를 내 보낸 다음 베어 저장소를 복제했습니다. 그런 다음 내보내기를 베어 리포지토리 디렉토리에 붙여넣고 다음을 수행했습니다. git add -A 그런 다음 다음과 같은 메시지 목록을 받았습니다. LF는 CRLF로 대체됩니다. 이 전환의 결과는 무엇입니까? 이것은 Visual Studio의 .NET 솔루션입니다. 답변 이 메시지는 Windows core.autocrlf 로 인해 발생합니다. autocrlf 의 개념은 줄 끝 변환을 투명하게 처리하는 것입니다. 그리고 그렇습니다! 나쁜 소식 : 값을 수동으로 구성해야합니다. 좋은 소식 : git 설치 당 한 번만 수행해야합니다 (프로젝트 ..

개발관련/Git 2021.12.01

GitHub 저장소에서 단일 폴더 또는 디렉토리 다운로드

질문 : GitHub 저장소에서 단일 폴더 또는 디렉토리 다운로드 GitHub에서 호스팅되는 원격 Git 리포지토리에서 특정 폴더 또는 디렉터리 만 다운로드하려면 어떻게해야합니까? 여기에 GitHub 리포지토리가있는 예를 들어 보겠습니다. git@github.com:foobar/Test.git 디렉토리 구조 : Test/ ├── foo/ │ ├── a.py │ └── b.py └── bar/ ├── c.py └── d.py 전체 테스트 프로젝트를 복제하지 않고 foo 폴더 만 다운로드하고 싶습니다. 답변 2021 년 4 월 업데이트 : 커뮤니티에서 만든 몇 가지 도구가 있습니다. 디렉토리 다운로드 ( 프레 간테에 대한 크레딧) 또한 Github 웹 UI의 버튼으로 우수한 Refined Github 크롬 ..

개발관련/Git 2021.11.30

Git으로 부분적으로 커밋 선택하기

질문 : Git으로 부분적으로 커밋 선택하기 저는 릴리즈 와 개발이라는 두 가지 브랜치에서 일하고 있습니다. 릴리스 브랜치에 커밋 된 일부 변경 사항을 개발 브랜치에 다시 통합해야한다는 것을 알았습니다. 문제는 모든 커밋이 필요하지 않고 특정 파일의 일부 덩어리 만 필요하므로 git cherry-pick bc66559 속임수를 쓰지 않습니다. 내가 할 때 git show bc66559 diff를 볼 수 있지만 현재 작업 트리에 부분적으로 적용하는 좋은 방법을 알지 못합니다. 답변 여기서 원하는 핵심은 git add -p ( -p --patch 의 동의어입니다). 이것은 콘텐츠를 체크인하는 대화 형 방법을 제공하여 각 덩어리가 들어갈 지 여부를 결정할 수 있으며 필요한 경우 수동으로 패치를 편집 할 수도 ..

개발관련/Git 2021.11.30

git 커밋 및 태그를 동시에 푸시하는 방법

질문 : git 커밋 및 태그를 동시에 푸시 git push --tags git push 와 별도의 작업 인 이유를 알고 있습니다. 실수로 태그를 누르는 것을 원하지 않으므로 태그를 누르는 것은 의식적인 선택이어야합니다. 괜찮아. 그러나 두 가지를 함께 밀 수있는 방법이 있습니까? ( git push && git push --tags 제외) 답변 2020년 8월 업데이트 에서 처음 언급 한 바와 같이 이 의해 답변을 SoBeRich , 내에서 자신의 대답 의로서, 자식 2.4.x에서 git push --atomic origin (참고 : 이것은 실제로 Git 2.24에서만 HTTPS에서 작동합니다. ) 2015년 5월 업데이트 git 2.4.1 부터 다음을 수행 할 수 있습니다. git config --..

개발관련/Git 2021.11.30

로컬 git 브랜치를 원격 브랜치와 비교하는 방법

질문 : 로컬 git 브랜치를 원격 브랜치와 비교하는 방법은 무엇입니까? 로컬 브랜치와 원격 브랜치 diff 어떻게 볼 수 있습니까? 답변 원격 추적 분기를 업데이트하려면 git fetch 를 입력 한 다음 다음을 입력해야합니다. git diff git branch -a 를 사용하여 모든 분기 (로컬 및 원격)를 나열한 다음 목록에서 분기 이름을 선택할 수 있습니다 (원격 분기 이름에서 remotes/ 예 : git diff main origin/main (여기서 "main"은 로컬 메인 브랜치이고 "origin / main"은 원격 즉, origin과 메인 브랜치입니다.) 출처 : https://stackoverflow.com/questions/1800783/how-to-compare-a-local-g..

개발관련/Git 2021.11.29

git 커밋을 삭제하고 변경 사항을 유지하는 방법

질문 : git 커밋을 삭제하고 변경 사항을 유지할 수 있습니까? 개발 브랜치 중 하나에서 코드베이스를 약간 변경했습니다. 작업중인 기능을 완료하기 전에 일부 기능을 데모하기 위해 현재 브랜치를 마스터로 전환해야했습니다. 그러나 "git checkout master"를 사용하는 것만으로도 개발 브랜치에서 변경 한 내용이 보존되어 master의 일부 기능이 손상되었습니다. 그래서 제가 한 것은 "임시 커밋"이라는 커밋 메시지와 함께 개발 브랜치의 변경 사항을 커밋 한 다음 데모를위한 체크 아웃 마스터였습니다. 이제 데모 작업을 마치고 다시 개발 브랜치 작업으로 돌아 왔으므로 변경 사항을 그대로 유지하면서 만든 "임시 커밋"을 제거하고 싶습니다. 가능합니까? 답변 다음과 같이 간단합니다. git reset ..

개발관련/Git 2021.11.29

한 git 저장소에서 다른 저장소 (복제본 아님)로 파일을 이동하여 기록을 보존하는 방법

질문 : 한 git 저장소에서 다른 저장소 (복제본 아님)로 파일을 이동하여 기록을 보존하는 방법 Git 리포지토리는 개별 프로젝트에 각각 다음과 같은 자체 트리가있는 단일 몬스터 SVN 리포지토리의 일부로 시작되었습니다. project1/branches /tags /trunk project2/branches /tags /trunk svn mv 를 사용하여 파일을 다른 파일로 옮기는 것은 꽤 쉬웠습니다. 그러나 Git에서 각 프로젝트는 자체 저장소에 있으며 오늘은 하위 디렉토리를 project2 에서 project1 로 이동하라는 요청을 받았습니다. 나는 다음과 같이했다. $ git clone project2 $ cd project2 $ git filter-branch --subdirectory-filt..

개발관련/Git 2021.11.29

모든 Git 태그를 나열하는 방법

질문 : 모든 Git 태그를 나열하는 방법은 무엇입니까? 내 저장소에서 다음 명령을 사용하여 태그를 만들었습니다. git tag v1.0.0 -m 'finally a stable release' git tag v2.0.0 -m 'oops, there was still a major bug!' 저장소의 모든 태그를 어떻게 나열합니까? 답변 git tag 충분해야합니다. git tag man page 참조 또한 : git tag -l 주어진 패턴과 일치하는 이름을 가진 태그를 나열합니다 (또는 패턴이 제공되지 않은 경우 모두). 인수없이 "git tag"를 입력하면 모든 태그가 나열됩니다. 최근에 ( " How to sort git tags? ", for Git 2.0+) git tag --sort= 특정 ..

개발관련/Git 2021.11.29

추적을 중지하고 Git에서 파일 변경 사항을 무시하는 방법

질문 : 추적을 중지하고 Git에서 파일 변경 사항을 무시하는 방법 .csproj 파일이 포함 된 프로젝트를 복제했습니다. 나는 내 로컬 csproj 파일이 Git에 의해 추적되는 (또는 패치를 만들 때 가져 오는) 필요 / 좋지 않지만 분명히 프로젝트에서 필요합니다. *.csproj 를 내 LOCAL .gitignore 에 추가했지만 파일이 이미 저장소에 있습니다. git status를 입력하면 패치를 추적하거나 제출하는 데 관심이없는 csproj 상태를 수행하거나 패치를 생성 할 때 변경 사항을 볼 수 없도록 개인 리포지토리에서 이러한 파일의 "추적"을 제거하려면 (하지만 소스에 보관하여 사용할 수 있도록) 어떻게해야합니까? 이 상황을 처리하는 올바른 / 표준적인 방법이 있습니까? 답변 개정 관리에서..

개발관련/Git 2021.11.27

한 Git 브랜치에서 다른 Git 브랜치로 단일 파일 버전을 복사하는 방법

질문 : 한 Git 브랜치에서 다른 Git 브랜치로 단일 파일 버전을 복사하려면 어떻게해야합니까? 완전히 합쳐진 두 개의 브랜치가 있습니다. 그러나 병합이 완료된 후 하나의 파일이 병합으로 인해 엉망이되었음을 알게되었으며 (다른 사람이 자동 서식을 수행했습니다. gah) 다른 분기에서 새 버전으로 변경하는 것이 더 쉬울 것입니다. 그런 다음 내 지점으로 가져온 후 한 줄 변경 사항을 다시 삽입하십시오. 그렇다면 Git에서 가장 쉬운 방법은 무엇일까요? 답변 파일을 끝낼 지점에서 이것을 실행하십시오. git checkout otherbranch myfile.txt 일반 공식 : git checkout git checkout / 일부 메모 (댓글에서) : 커밋 해시를 사용하면 모든 커밋에서 파일을 가져올 수..

개발관련/Git 2021.11.26

푸시 된 후 git에서 커밋을 스쿼시하는 방법

질문 : 푸시 된 후 git에서 커밋을 스쿼시하는 방법은 무엇입니까? 이것은 여러 커밋을 스쿼시하는 것에 대한 좋은 설명을 제공합니다. http://git-scm.com/book/en/Git-Branching-Rebasing 그러나 이미 푸시 된 커밋에는 작동하지 않습니다. 내 로컬 및 원격 저장소 모두에서 가장 최근의 커밋을 어떻게 스쿼시합니까? git rebase -i origin/master~4 master 를 수행하고 첫 번째 것을 pick 으로 유지하고 나머지 세 개를 squash 로 설정 한 다음 종료합니다 (emacs의 cx cc를 통해). $ git rebase -i origin/master~4 master # Not currently on any branch. nothing to comm..

개발관련/Git 2021.11.26

git 스테이징 영역에서 파일을 제거하는 방법

질문 : git 스테이징 영역에서 파일을 제거하는 방법은 무엇입니까? 내 로컬 리포지토리의 일부 파일을 변경 한 다음 git add -A 를 수행하여 스테이징 영역에 너무 많은 파일을 추가했다고 생각합니다. 스테이징 영역에서 모든 파일을 삭제하려면 어떻게해야합니까? 그런 다음 수동으로 git add "filename" 합니다. 답변 다음을 사용하여 인덱스에서 파일을 언 스테이징 할 수 있습니다. git reset HEAD -- path/to/file git add 와 마찬가지로 디렉토리 등으로 파일을 재귀 적으로 언 스테이징 할 수 있으므로 한 번에 모든 것을 언 스테이징하려면 저장소의 루트 디렉토리에서 다음을 실행하십시오. git reset HEAD -- . 또한 향후 참조를 위해 git status ..

개발관련/Git 2021.11.26

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

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

개발관련/Git 2021.11.26

.gitignore에서 무시되는 특정 파일을 표시하는 Git 명령

질문 : .gitignore에서 무시되는 특정 파일을 표시하는 Git 명령 힘내에 발이 젖어 있고 다음과 같은 문제가 있습니다. 내 프로젝트 소스 트리 : / | +--src/ +----refs/ +----... | +--vendor/ +----... 벤더 브랜치에 코드 (현재 MEF)가 있는데 여기에서 컴파일 한 다음 참조를 프로젝트가 가져 오는 /src/refs 내 문제는 .gitignore *.dll 및 *.pdb 무시하도록 설정되어 있다는 것입니다. git add -f bar.dll 을 수행하여 무시 된 파일을 강제로 추가 할 수 있습니다. 문제는 무시되는 파일이 무엇인지 나열 할 수 없다는 것입니다. 무시 된 파일을 나열하여 추가하는 것을 잊지 않도록하고 싶습니다. git ls-files 의 m..

개발관련/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

기존 소스 코드를 GitHub로 가져 오기

질문 : 기존 소스 코드를 GitHub로 가져 오기 내 컴퓨터에서 내 GitHub 계정으로 소스 코드를 가져 오려면 어떻게해야합니까? 답변 원격을 먼저 '복제'하지 않고 새 원격 새 git 저장소에 추가하려는 로컬 소스 코드가있는 경우 다음을 수행합니다 (자주 이렇게합니다-bitbucket / github에 원격 빈 저장소를 만든 다음 푸시 귀하의 출처) git@github.com:/youruser/somename.git 또는 https://github.com/youruser/somename.git 와 같은 URL을 가져 옵니다. 로컬 GIT 저장소가 이미 설정된 경우 2 단계를 건너 뜁니다. 그리고 3 로컬에서 소스의 루트 디렉토리에서 git init 2a. .gitignore 및 README.md로 ..

개발관련/Git 2021.11.26

git config --global의 사용 방법

질문 : git config --global은 어디에 쓰나요? git config --global 을 사용하여 설정하는 경우 어떤 파일에 기록합니까? 예: git config --global core.editor "blah" 다음 장소에서 찾을 수 없습니다. C:\Program Files\Git\etc\gitconfig C:\myapp\.git\config ENV를 설정하지 않았습니까? 내 Git 버전 : 1.6.5.1.1367.gcd48 – Windows 7 답변 2016 업데이트 : git 2.8 (2016 년 3 월)에서는 다음을 간단히 사용할 수 있습니다. git config --list --show-origin Git 2.26 (2020 년 1 분기)에서는 --show-scope 옵션을 추가 할..

개발관련/Git 2021.11.24

Git으로 분기점 찾는 방법

질문 : Git으로 분기점 찾기? 브랜치 마스터와 A가있는 저장소와 둘 사이에 많은 병합 활동이 있습니다. 마스터를 기반으로 브랜치 A가 생성되었을 때 내 저장소에서 커밋을 어떻게 찾을 수 있습니까? 내 저장소는 기본적으로 다음과 같습니다. -- X -- A -- B -- C -- D -- F (master) \ / \ / \ / \ / G -- H -- I -- J (branch A) git merge-base (--all) 가 찾은 것이 아닌 개정 A를 찾고 있습니다. 답변 나는 똑같은 것을 찾고 있었고이 질문을 발견했습니다. 물어봐 주셔서 감사합니다! 그러나, 나는 그렇게하지 여기에있는 답변은 아주 당신이 (또는 내가 찾던 것을) 물어 대답을하는 것 발견 - 그들이 제공하는 것 G 대신의 커밋 커밋..

개발관련/Git 2021.11.24

하위 디렉터리를 별도의 Git 저장소로 분리하는 방법

질문 : 하위 디렉터리를 별도의 Git 저장소로 분리 (이동) 여러 하위 디렉토리가 포함 된 Git 저장소가 있습니다. 이제 하위 디렉터리 중 하나가 다른 하위 디렉터리와 관련이 없으며 별도의 저장소로 분리되어야 함을 발견했습니다. 하위 디렉토리에 파일 기록을 유지하면서 어떻게해야합니까? 나는 클론을 만들고 각 클론의 원치 않는 부분을 제거 할 수있을 것 같지만 이것이 이전 개정판 등을 확인할 때 완전한 트리를 제공 할 것이라고 생각합니다. 이것은 수용 가능할 수도 있지만, 그런 척 할 수있는 것을 선호합니다. 두 저장소에는 공유 기록이 없습니다. 명확하게하기 위해 다음과 같은 구조가 있습니다. XYZ/ .git/ XY1/ ABC/ XY2/ 그러나 대신 이것을 원합니다. YZ/ .git/ XY1/ XY2..

개발관련/Git 2021.11.23

git 표시를 삭제하고 새 파일을 파일 이동으로 표시하는 방법

질문 : git 표시를 삭제하고 새 파일을 파일 이동으로 표시하는 방법은 무엇입니까? 수동으로 파일을 이동 한 다음 수정했습니다. Git에 따르면 새 파일이고 제거 된 파일입니다. Git이 파일 이동으로 처리하도록 강제하는 방법이 있습니까? 답변 Git은 수정이 너무 심각하지 않은 경우 자동으로 이동 / 이름 변경을 감지합니다. git add 은 새 파일을 git rm 은 이전 파일을 추가합니다. git status 가 이름 바꾸기를 감지했는지 여부를 표시합니다. 또한 디렉토리 이동을 위해 다음을 수행해야 할 수 있습니다. cd를 디렉터리 구조의 맨 위에 올립니다. git add -A 를 실행합니다. git 상태를 실행하여 "새 파일"이 이제 "이름 변경"된 파일인지 확인합니다. git 상태가 여전히 "..

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