programing

초보자용 Git:최종적인 실용적인 가이드

telecom 2023. 4. 10. 20:55
반응형

초보자용 Git:최종적인 실용적인 가이드

네, PJ Hyett의 투고를 보고 Git으로 넘어가기로 했습니다.

그래서 제가 필요한 것은 Git에 대한 초심자의 실용적인 가이드입니다. "Beginner"는 컴파일러를 다루는 법을 알고, Makefile이 무엇인지 어느 정도 이해하고, 소스 컨트롤을 잘 이해하지 못한 사람으로 정의됩니다.

"실용적"이라고 정의되는 이 사람은 Git이 백그라운드에서 무엇을 하고 있는지 자세히 설명하기를 원하지 않으며 Git이 배포되는 것을 신경 쓰지도 않습니다.당신의 답변은 가능성을 암시할 수 있지만, 백업되고 안전한 '서버'에 '메인' 저장소를 유지하고 로컬 저장소를 단순한 '클라이언트' 리소스로 취급하고자 하는 초보자를 목표로 합니다.

그래서:

설치/셋업

코드 조작

태그 부착, 분기, 릴리스, 기준선

다른.

  • Git을 비명령줄 리소스로 만드는 좋은 GUI, IDE 플러그인 등에 대해 설명하고 링크하되, Git의 한계와 장점을 나열해 주십시오.
    • msysgit - Git에 포함된 크로스 플랫폼
    • gitk - Git에 포함된 크로스 플랫폼 이력 뷰어
    • gitnub - Mac OS X
    • gitx - Mac OS X 이력 뷰어
    • smartgit - 크로스 플랫폼, 상용, 베타
    • tig - Linux용 콘솔 GUI
    • qgit - Windows, Linux용 GUI
    • Git Extensions - Windows용 패키지, 편리한 GUI 포함
  • 초보자가 알아야 할 다른 일반적인 작업이 있습니까?
  • 서브버전 저장소를 소스 제어 소스로 설정한 상태에서 효율적으로 작업하려면 어떻게 해야 합니까?

기타 Git 초보자용 레퍼런스

Git 조사

엔트리를 수시로 검토하여 일관된 외관과 느낌을 가지도록 정리하고 목록을 쉽게 스캔할 수 있도록 하겠습니다.심플한 "header - brief description - list of instructions - gotchas and extra info" 템플릿에 따라 주세요.위의 글머리 기호 목록에 있는 항목에도 링크를 걸어두면 나중에 쉽게 찾을 수 있습니다.

새로운 프로젝트/리포지토리를 작성하려면 어떻게 해야 합니까?

한 git을 입니다..git디렉토리로 이동합니다.

「 집중형 제어 등).checkout「작업 카피」디렉토리에 격납합니다.git에서는 작업 복사본이 저장소입니다.

「 「 」를 만 하면 .git init추적하려는 파일이 들어 있는 디렉토리로 이동합니다.

예를들면,

cd ~/code/project001/
git init

하면 '아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아'가..git(서양속담, 친구속담)

하려면 , 「 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」git init추가 인수(작성할 디렉토리 이름)를 지정합니다.

git init project002

(This is equivalent to: mkdir project002 && cd project002 && git init)

내에 하려면 git 저장소를 실행하십시오.git status 저ledge::::::::: ":"라고저장소가 .

할 수 ..git디렉토리에 다음과 같은 파일/디렉토리가 포함되어 있는지 확인합니다.

$ ls .git
HEAD         config       hooks/       objects/
branches/    description  info/        refs/

어떤 이유로든 저장소를 "탈지"하고 싶은 경우(Git를 사용하여 프로젝트를 추적하는 것을 중지하고 싶은 경우).요..git디렉토리가 저장소의 기본 레벨에 있습니다.

cd ~/code/project001/
rm -rf .git/

주의:이것은 모든 개정 내역, 당신의 태그, git의 모든 파괴할 것입니다."현재" 파일(현재 볼 수 있는 파일)은 건드리지 않지만 이전 변경, 삭제된 파일 등은 복구할 수 없습니다.

git용 GUI


Git GUI

- git을 실행합니다.git guiWindows msysgit instra가 이 명령줄을 [시작(Start)]메뉴에 추가합니다.

Git GUI는 Git에 필요한 대부분의 작업을 수행할 수 있습니다.스테이지 변경, git 및 저장소 구성, 변경 푸시, 브랜치 작성/체크아웃/삭제, 머지 등 많은 것을 포함합니다.

제가 좋아하는 기능 중 하나는 오른쪽 클릭 메뉴에 있는 "스테이지 라인"과 "스테이지 행크" 단축키입니다. 이 숏컷을 사용하면 파일의 특정 부분을 커밋할 수 있습니다., 하다, 하다, 하다, 하다를 통해서도 같은 수 있습니다.git add -i츠미야

가장 예쁜 애플리케이션은 아니지만 거의 모든 플랫폼에서 작동합니다(Tcl/Tk 기반).

스크린샷 | 스크린캐스트


GitK

git에도 포함되어 있습니다.git 이력 뷰어로 저장소의 이력(브런치, 브랜치 작성 및 병합 시 포함)을 시각화할 수 있습니다.커밋을 보고 검색할 수 있습니다.

git-gui랑 잘 어울린다.


깃누브

Mac OS X 어플리케이션주로 등가물git log는, Github 와의 통합(「네트워크 뷰」등)이 있습니다.

보기에도 예쁘고 Mac OS X에도 적합하며 저장소를 검색할 수 있습니다.Gitnub의 가장 큰 비판은 역사를 선형(한 번에 하나의 브랜치)으로 나타낸다는 것이다.이것은 계획된 개선이지만, Git에서 중요할 수 있는 분기나 병합을 시각화하지 않는다.

링크 다운로드, 로그스크린샷 변경| git 저장소


GitX

"OS X용 Gitk 클론"이 되는 것을 목표로 하고 있습니다.

비선형 분기 이력을 시각화하고 커밋을 실행하며 보기 및 검색 커밋을 수행할 수 있습니다.또, 리비전내의 파일을 「퀵 룩」(파일 리스트 뷰내의 스페이스 누름), 파일을 export(드래그 앤 드롭) 할 수 있는 등, 그 외의 뛰어난 기능도 있습니다.

X os 、 OS X os 、 OS X os 、 OS X os os os os os보다 OS 에 훨씬 더 잘됩니다.git-gui/gitk매우 큰 저장소에서도 빠르고 안정적입니다.

원래 git 저장소 pieter는 최근 업데이트되지 않았습니다(작성 시 1년이 넘음).보다 능동적으로 유지관리되는 브랜치는 brotherbard/gitx에서 이용할 수 있습니다.이 브랜치는 "sidebar, fetch, pull, push, add remote, merge, cherry-pick, rebase, clone to"를 추가합니다.

다운로드 | 스크린샷 | git 저장소 | brotherbard fork | laellon fork


스마트기트

홈페이지에서 :

SmartGit은 분산 버전 관리 시스템 Git의 프런트 엔드이며 Windows, Mac OS X 및 Linux에서 실행됩니다.SmartGit은 명령줄 클라이언트보다 그래픽 사용자 인터페이스를 선호하는 개발자를 위한 것으로, 현재 가장 강력한 DVCS인 Git를 통해 더욱 생산성이 향상됩니다.

웹사이트에서 다운받으실 수 있습니다.

다운로드.


터틀깃

거북이Windows 사용자용 SVN Git 버전.

그것은 거북이를 운반하고 있다.SVN에서 TortoiseGit 최신 릴리스 1.2.1.0 이 릴리스에서는 commit, show log, diff 2 version, 브랜치 및 태그 작성, 패치 작성 등의 일반 작업을 수행할 수 있습니다.자세한 내용은 ReleaseNotes를 참조하십시오.이 프로젝트에 참여하게 된 것을 환영합니다.

다운로드.


QGit

QGit은 Qt/C++ 기반의 Git GUI 뷰어입니다.

qgit을 사용하면 리비전 이력 참조, 패치 내용 및 변경된 파일 표시, 그래픽으로 다양한 개발 브랜치를 추적할 수 있습니다.

다운로드.


gitg는 gtk+/GNOME을 대상으로 하는 git 저장소 뷰어입니다.주요 목적 중 하나는 여러 데스크톱에서 git 프런트엔드를 위한 보다 통일된 사용자 경험을 제공하는 것입니다.이는 크로스 플랫폼 애플리케이션을 작성하는 것이 아니라 다른 운영체제(OS X용 GitX 등)를 위한 유사한 클라이언트와의 긴밀한 협업을 통해 이루어집니다.

특징들

  • 리비전 이력을 참조합니다.
  • 대규모 저장소 처리(Loads Linux 저장소, 17000 이상의 리비전, 1초 미만)
  • 변경을 커밋합니다.
  • 개개의 힌트를 스테이지/스테이지 해제한다.
  • 변경 내용을 되돌립니다.
  • 수정사항 변경사항의 색상 차이를 표시합니다.
  • 지정된 리비전의 트리를 참조합니다.
  • 지정된 리비전의 트리 일부를 내보냅니다.
  • 기록을 작성하기 위해 'git log'와 같은 명령에서 인식할 수 있는 refspec을 입력합니다.
  • 이력 뷰에서 브랜치를 표시 및 전환합니다.

다운로드: 릴리즈 또는 소스


깃박스

Gitbox는 Git 버전 관리 시스템을 위한 Mac OS X 그래픽 인터페이스입니다.단일 창에 분기, 이력 및 작업 디렉토리 상태가 표시됩니다.

일상적인 조작은 간단합니다.체크박스를 켜면 스테이지와 언스테이지가 바뀝니다.클릭 한 번으로 커밋, 풀, 머지, 푸시 할 수 있습니다.변경을 더블 클릭하여 FileMerge.app과의 차이를 표시합니다.

다운로드.


지티

Gity 웹사이트에는 많은 정보가 없지만, 스크린샷을 보면 기능이 풍부한 오픈 소스 OS X git gui인 것 같습니다.

다운로드 또는 소스


멜드

Meld는 시각적 차이와 병합 도구입니다.2개 또는 3개의 파일을 비교하고, 적절한 장소에서 편집할 수 있습니다(다이나믹하게 갱신).두세 개의 폴더를 비교하고 파일 비교를 시작할 수 있습니다.CVS, Subversion, Baza-ng, Mercurial [ Git]과 같은 인기 버전 관리 시스템에서 작업 복사본을 찾아 볼 수 있습니다.

다운로드


카타나

Steve Dekorte의 OSX용 Git GUI.

풀할 변경사항이 있는 리모트브런치 및 푸시할 변경사항이 있는 로컬저장소를 한 눈에 확인할 수 있습니다.add, commit, push, pull, tag 및 reset의 git ops는 물론 로컬 변경 및 추가를 강조하는 프로젝트 계층 구조의 시각적 차이와 시각적 브라우징이 지원됩니다.

1개의 저장소는 무료, 그 이상의 저장소는 25달러.

다운로드.


Sprout (구 GitMac)

Git을 사용하기 쉽게 하는 것에 초점을 맞춥니다.네이티브 코코아(mac-like) UI, 빠른 저장소 브라우징, 클로닝, 푸시/풀, 분기/머징, 시각적 차이, 원격 분기, 터미널 액세스 용이성 등을 특징으로 합니다.

가장 많이 사용되는 Git 액션을 직관적이고 쉽게 수행하도록 함으로써, Srawt(구 GitMac)는 Git을 사용자 친화적으로 만듭니다.대부분의 Git 워크플로우와 호환되는 Sprout은 디자이너와 개발자, 팀 콜라보레이션, 고급 사용자 및 초보 사용자 모두에게 매우 적합합니다.

다운로드 | 웹사이트


타워

기능이 풍부한 Mac OSX용 Git GUI. 30일 무료 평가판, 1인 라이선스에 59달러.

다운로드 | 웹사이트


EGit

EGit은 Git 버전 제어 시스템을 위한 Eclipse 팀 제공업체입니다.Git은 분산형 SCM으로, 모든 개발자가 코드의 모든 리비전 이력의 완전한 복사본을 가지고 있기 때문에 이력에 대한 쿼리는 매우 빠르고 다재다능합니다.

EGit 프로젝트는 Git의 JGit Java 구현 위에 Eclipse 툴링을 구현하고 있습니다.

다운로드 | 웹사이트


Git 확장 기능

Open Source for Windows - Git을 사용하는 데 필요한 모든 것을 하나의 패키지로 쉽게 설치할 수 있습니다.

Git Extensions는 Windows에서 Git을 보다 직관적으로 조작할 수 있는 툴킷입니다.셸 확장은 Windows 탐색기에 통합되어 파일 및 디렉터리에 컨텍스트 메뉴가 표시됩니다.Visual Studio의 git을 사용할 수 있는 Visual Studio 플러그인도 있습니다.

다운로드.

git gui에 대해 자세히 설명해 주신 dbr님 감사합니다.


소스 트리

SourceTree는 Git, Mercurial 및 SVN용 무료 Mac 클라이언트입니다.BitBucket의 배후에 있는 Atlassian이 구축한 이 툴은 모든 VC 시스템과 동일하게 동작합니다.이를 통해 단일 툴을 마스터하여 모든 프로젝트에서 사용할 수 있지만 버전 제어가 가능합니다.기능이 풍부하고 무료입니다.

초보자 및 상급자 사용자 모두 전문가 지원 및 풍부한 기능 제공:

발신 및 착신 변경 세트를 확인합니다.나뭇가지 사이로 벚꽃을 따다.패치 처리, 베이스 변경, 보관/선반 등.

다운로드 | 웹사이트


음, 당신이 우리가 다른 자원에 "단순히" 링크하지 않는다고 물었음에도 불구하고, Git 커뮤니티 북이라는 매우 좋은 커뮤니티 성장(그리고 성장하는) 리소스가 이미 존재하는 것은 매우 어리석은 일입니다.진지하게 질문의 이 20개 이상의 질문은 결코 간결하고 일관되지 않을 것입니다.Git 커뮤니티 북은 HTML과 PDF 양쪽으로 제공되며, 명확하고 포맷이 잘 되어 있으며 동료가 검토한 답변으로 많은 질문에 답합니다.또한 바로 눈앞의 문제로 바로 이동할 수 있는 형식으로 답변합니다.

아아, 만약 내 게시물이 정말 당신을 화나게 한다면, 나는 그것을 삭제하겠어요.그냥 그렇게 말해.

파일을 무시하도록 구성하는 방법:

추적하고 싶지 않은 파일을 git이 무시하도록 하는 기능은 매우 유용합니다.

파일 또는 파일 집합을 무시하려면 패턴을 입력합니다.git의 패턴 구문은 매우 간단하지만 강력합니다.아래에 언급할 세 가지 파일 모두에 해당됩니다.

  • 공백 행은 파일을 무시합니다.일반적으로 구분자로 사용됩니다.
  • # 로 점멸하는 행은 코멘트로 기능합니다.
  • ! 프리픽스는 옵션이며 패턴을 비활성화합니다.일치하는 부정 패턴은 우선 순위가 낮은 패턴보다 우선됩니다.
  • 고급 표현 및 와일드 카드 지원
    • 예: *.[oa] 패턴은 .o 또는 .a로 끝나는 저장소 내의 모든 파일(오브젝트와 아카이브 파일)을 무시합니다.
  • 패턴에 슬래시 git으로 끝나는 디렉토리가 있는 경우, 이 디렉토리와 그 아래에 있는 경로만 일치합니다.이는 일반 파일과 심볼릭링크는 대조에서 제외됩니다.
  • 선행 슬래시는 해당 경로 이름의 모든 파일과 일치합니다.
    • 예: /.c 패턴은 foo.c 파일에는 일치하지만 bar/awesome.c에는 일치하지 않습니다.

gitignore(5) man 페이지의 좋은 예:

$ git status
[...]
# Untracked files:
[...]
#       Documentation/foo.html
#       Documentation/gitignore.html
#       file.o
#       lib.a
#       src/internal.o
[...]
$ cat .git/info/exclude
  # ignore objects and archives, anywhere in the tree.
  *.[oa]
$ cat Documentation/.gitignore
# ignore generated html files,
*.html
# except foo.html which is maintained by hand
!foo.html
$ git status
[...]
# Untracked files:
[...]
#       Documentation/foo.html
[...]

일반적으로 추적되지 않은 파일을 무시하는 방법은 세 가지가 있습니다.

1) 저장소의 모든 사용자에 대해 무시:

작업 복사본의 루트에 .gitignore라는 파일을 추가합니다.

.gitignore를 편집하여 무시하거나 무시해서는 안 되는 파일에 대한 기본 설정과 일치시킵니다.

git add .gitignore 

하고 나서 약속해.

2) 저장소의 복사본에 대해서만 무시합니다.

원하는 패턴을 사용하여 작업 복사본에서 $GIT_DIR/info/exclude 파일을 추가/편집합니다.

예: 작업 복사본은 ~/src/project1이므로 ~/src/project1/.git/info/exclude를 편집합니다.

끝났어!

3) 시스템에서 모든 상황을 무시하십시오.

시스템에 대한 글로벌 무시 패턴은 원하는 파일에 넣을 수 있습니다.

저는 개인적으로 ~/.gitglobalignore라고 합니다.

다음 행으로 ~/.gitconfig 파일을 편집하여 git에 이 파일을 알릴 수 있습니다.

core.excludesfile = ~/.gitglobalignore

끝났어!

gitignore man 페이지가 더 많은 정보를 얻을 수 있는 가장 좋은 자료라고 생각합니다.

특정 리비전 세트를 '태그 부착'하려면 어떻게 해야 합니까?

특정 파일 세트에 대한 특정 리비전 세트를 '태그' 또는 '릴리스'하여 나중에 언제든지 가져올 수 있도록 하려면 어떻게 해야 합니까?

「 」의 git tag명령어를 입력합니다.

현재 리비전을 단순히 "태그 부착"하려면 실행하기만 하면 됩니다.

git tag -a thetagname
git tag -a 0.1
git tag -a 2.6.1-rc1 -m 'Released on 01/02/03'

의 태그를하려면 , 「」를 실행해 .git tag 또는 ""를 사용하지 않음"-l L (소문자 L):

$ git tag -a thetagname # and enter a message, or use -m 'My tag annotation'
$ git tag -l
thetagname

하려면 , 「」를 합니다.-d 삭제:

$ git tag -d thetagname 
Deleted tag 'thetagname'
$ git tag
[no output]

특정(이전) 커밋에 태그를 붙이려면 다음 작업을 수행합니다.

git tag [tag name] [revision SHA1 hash]

예를 들어 다음과 같습니다.

git tag 1.1.1 81b15a68c6c3e71f72e766931df4e6499990385b

주의: 기본적으로 git은 "경량" 태그를 만듭니다(기본적으로 특정 리비전을 참조).은 '올바른'을 입니다.-a를 요구하는 하는 것과 로, 「 Message」를 할 도 있습니다).-m이 달린 를 사용하면 및 시그니처가 오브젝트가 됩니다(「」ID, 「」, 「」( 「」)를 합니다).-s태그)의 상세한 것에 대하여는, 투고를 참조해 주세요.

git tag mytagwithmsg -a -m 'This is a tag, with message'

, 「태그」를 합니다.-n1을 표시하는 ( 「1」 「1」).-n245「245」의 「245'의 '245')

$ git tag -l -n1
mytagwithmsg    This is a tag, with message

자세한 내용은 git-tag(1) 매뉴얼 페이지를 참조하십시오.

GIT를 사용한 워크플로우 예시.

Git은 매우 유연하고 어떤 워크플로우에도 적합하지만, 특정 워크플로우를 적용하지 않으면 선형적인 "백업" 워크플로우를 넘어 git에서 무엇을 할 수 있는지, 브랜치가 얼마나 유용한지 이해하기 어려울 수 있습니다.

이 블로그 투고는 git을 사용하여 매우 쉽게 셋업할 수 있는 매우 심플하지만 효과적인 워크플로우를 잘 설명하고 있습니다.

블로그 투고에서 인용:오리진/마스터는 HEAD의 소스 코드가 항상 프로덕션 준비 상태를 반영하는 메인 브랜치라고 간주합니다.

이 워크플로우는 git-flow라는 워크플로우를 구현하는 프로젝트를 만들 정도로 인기를 끌고 있습니다.

심플한 워크플로우에 대한 좋은 그림입니다.이 워크플로우에서는 개발 중에 모든 변경을 하고 코드가 실제 가동 상태일 때만 마스터를 푸시할 수 있습니다.

단순 워크플로우

이제 새로운 기능에 대해 작업하거나 모듈을 리팩터링하는 경우를 가정해 보겠습니다.새로운 브랜치를 작성할 수 있습니다.이것은 「기능」브런치라고 불리는 것으로, 시간이 걸려 코드가 깨질 가능성이 있습니다.기능이 「안정적」으로 「가까이」를 실가동 환경에 「가까이」하고 싶은 경우는, 기능 브랜치를 통합해 주세요.머지 후 모든 버그가 정리되고 코드가 모든 테스트를 완전히 통과하면 마스터에 변경을 푸시합니다.

이 모든 과정 중에 보안상의 문제가 발견되어 즉시 수정해야 합니다.핫픽스라고 하는 브랜치에서는, 통상의 「개발」브런치보다 신속하게 실가동 환경에 되돌리는 변경을 실시할 수 있습니다.

여기 이 기능/핫픽스/개발/실가동 워크플로우에 대한 설명이 있습니다(블로그 투고에서 잘 설명되고 있습니다.이 블로그 투고에서는 프로세스 전체에 대해 저보다 훨씬 상세하고 잘 설명하고 있습니다.

Git 워크플로우 예시

다음은 PJ Hyett의 게시물 사본입니다. 더 이상 제공되지 않습니다.

Git은 어렵지 않다

2008년 11월 23일

사람들에게 Git over Subversion을 사용해야 하는 이유를 말할 때, "Git은 Subversion보다 Subversion을 더 잘하지만, 그 이상의 기능을 한다."는 것이 단골이다.

"Lot more"는 Git을 정말 빛나게 하는 많은 것들로 구성되어 있지만, Subversion과 같은 다른 SCM에서 온 사람들에게는 상당히 압도적일 수 있다.

그렇다고 해서, 당신이 이행하는 동안 Subversion을 사용하는 것처럼 Git을 사용하는 것을 막을 수 있는 것은 없다.

필요한 소프트웨어를 설치하고 리모트저장소가 어딘가에 있다고 가정할 때, Subversion을 사용하여 코드를 가져와 변경을 되돌리는 방법은 다음과 같습니다.

$ svn checkout svn://foo.googlecode.com/svn/trunk foo
# make your changes
$ svn commit -m "my first commit"

Git에서는 어떻게 할 수 있을까요?

$ git clone git@github.com:pjhyett/foo.git
# make your changes
$ git commit -a -m "my first commit"
$ git push

Git에서 실행할 수 있는 명령어가 하나 더 있습니다.이 추가 명령어는 큰 의미를 가지지만, 이 게시물에서는 이 추가 명령어에 대해서만 설명합니다.

봐, 그렇게 어렵지 않아.

업데이트: Git과 비교하여 Subversion에서 로컬 복사본을 업데이트하는 것과 동등한 것은 언급하지 않아도 됩니다.svn update ★★★★★★★★★★★★★★★★★」git pull각각 다음과 같다.1번으로 하다.

Git 설치 방법

Windows 의 경우:

msysgit 설치

몇 가지 다운로드가 있습니다.

  • Git: 특별히 아래 옵션 중 하나가 필요하지 않은 경우 이 옵션을 사용하십시오.
  • PortableGit: PC에 Git을 설치하지 않고 PC에서 Git을 실행하려면 이 옵션을 사용하십시오(USB 드라이브에서 Git을 실행하는 경우 등).
  • msysGit : Git 자체 개발을 원할 경우 사용합니다.Git의 소스 코드를 편집하지 않고 Git을 사용하고 싶은 경우, 이것은 필요 없습니다.

되므로 Cygwin bash를 할 수 .git( 셸)및 git-guihttp.exe를 통해 액세스 ) git-gui(git.exe를 통해 액세스 가능)를 합니다.git gui 「」의Start > All Programs > Git를 선택합니다.

Mac OS X

git-osx-installer를 사용하거나 소스에서 설치할 수도 있습니다.

패키지 매니저 경유

git기본 패키지 관리자를 사용합니다.Debian (Ubuntu) :

apt-get install git-core

또는 Mac OS X의 경우 MacPort를 통해:

sudo port install git-core+bash_completion+doc

…또는 fink:

fink install git

또는 홈브루:

brew install git

Fedora 등의 Red Hat 기반 배포:

yum install git

Cygwin에서 Git 패키지는 "devel" 섹션에 있습니다.

원본(Mac OS X/Linux/B)SD/등)

Mac OS XDeveloper Tools입니다.을 Git으로 .tar.bz ★★★★★★★★★★★★★★★★★」.tar.gzhttp://git-scm.com/, 에서 추출합니다(파인더에서 더블 클릭).

BLINUX/B' 에서는 SD/MANTERY MANTHE DELLINGE.를 들어 Debian Ubuntu에서는 Debian(및 Ubuntu)을 .데비안(우분투).build-essential경유로 포장하다apt.

후 에서는 "" " " "cd파일을 압축 해제한 위치로 이동합니다(실행 중).cd ~/Downloads/git*/작동해야 합니다.) 그리고 나서..

./configure && make && sudo make install

위치Git)에 됩니다./usr/local - 래 - -git 있을 것이다/usr/local/bin/git)

됩니다(「비밀번호 입력」의).sudo에 쓸 수 있습니다./usr/local/디렉토리 - "root" 사용자만 액세스할 수 있으므로 sudo가 필요합니다!

않도록 해야 하는 Git을 하십시오.--prefix 명령어configure 를 합니다.

./configure --prefix=/usr/local/gitpath
make
sudo make install

「 」가 인스톨 .git으로 하다/usr/local/bin/gitpath/bin/git - 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, .★★★★★★★★★★★★★★★★★★,$PATH ~/.profile:

export PATH="${PATH}:/usr/local/bin/gitpath/bin/"

할 수 경우 sudo를 할 수 .--prefix=/Users/myusername/bin홈 디렉토리에 인스톨 합니다. 말고 ""를 추가해 주세요.~/bin/로로 합니다.$PATH

x-git-update-to-latest-version 스크립트는 다음과 같은 많은 작업을 자동화합니다.

합니다(git ).~/work/track/git를 설정하고인스톨 「 」 、 「 」 、 「 」 。/usr/local/git-git describe합니다./usr/local/git심볼링크

하면 는 렇게, 는 this를 가질 수 ./usr/local/git/bin 집에서는PATH항상 최신 버전을 사용하고 있습니다.

이 스크립트의 최신 버전에서는 man 페이지도 설치됩니다.요.MANPATH /usr/local/git/share/man디렉토리로 이동합니다.

Git 리셋

끌어당겨서 코드에 넣고 마음에 안 든다고 판단하면 됩니다.git-log 또는 tig를 사용하여 되돌아가고 싶은 곳의 해시(아마 풀/머지 전 마지막 커밋)를 찾아 해시를 복사하고 다음을 수행합니다.

# Revert to a previous commit by hash:
git-reset --hard <hash>

해시 대신 HEAD^을 이전 커밋의 바로 가기로 사용할 수 있습니다.

# Revert to previous commit:
git-reset --hard HEAD^

공유 팀 저장소를 설정하려면 어떻게 해야 합니까?

여기에서는 일반 저장소를 설정하는 방법에 대해 설명합니다.다만, 모든 사람이 도입 및 도입할 수 있는 팀 저장소를 설정하는 방법은 무엇입니까?

공유 NFS 파일 시스템 사용

예를 들어 팀이 이미 사용할 수 있는 공유 그룹 구성원 자격을 가지고 있다고 가정합니다.

mkdir /your/share/folder/project.git
cd /your/share/folder/project.git
newgrp yourteamgroup # if necessary
git init --bare --shared

이 저장소를 사용하려면 이미 사용 중인 로컬 저장소에서 시작하는 것이 가장 쉽습니다.

cd your/local/workspace/project
git remote add origin /your/share/folder/project.git
git push origin master

이제 다른 사용자가 이를 복제하고 작업을 시작할 수 있습니다.

cd your/local/workspace
git clone /your/share/folder/project.git

SSH 사용

이치노패스워드가하는지, 패스워드가 있는 계정을 사용하는지 .authorized_keys필요한 보안 수준에 따라 달라집니다.자세한 내용은 Git over SSH 구성을 참조하십시오.

모든 가 이 이 공유 .--shared옵션을 선택합니다.

위와 같은 방법으로 저장소를 입력한 후 다음과 같이 초기 푸시를 수행합니다.

cd your/local/workspace/project
git remote add origin user@server:/path/to/project.git
git push origin master

위항 의사 사사 ?사 사? ?? ??또한 SSH가 계정에 비밀번호가 있는 경우 비밀번호를 요구하는 것만이 발생할 수 있습니다.이 서버는 SSH를 디세블로 했을 입니다.PermitEmptyPasswords.

현재 클로닝은 다음과 같습니다.

cd your/local/workspace
git clone user@server:/path/to/project.git

git status츠미야다음과 같은 질문에 대한 답변에 적합합니다.

  • 그 명령어가 방금 뭘 한 거야?
  • 제가 무슨 지점이죠?
  • 앞으로 어떤 변화를 겪게 될 것이며, 잊어버린 것이 있습니까?
  • 제가 이 프로젝트를 마지막으로 작업했을 때(수일, 수주, 또는 몇 달 전)에 뭔가 진행 중이었습니까?

는 달리, 「 」라고 말해 주세요.svn status,git status대규모 프로젝트에서도 거의 가동되고 있습니다.자주 사용하는 것을 배우면서 내 정신모델이 정확한지 확인하면서 안심이 되는 경우가 많았다.지금은 주로 지난 번 약속 이후로 내가 변한 것을 상기시키기 위해 사용합니다.

확실히.gitignore가 적절하게 설정되어 있으면 훨씬 편리합니다.

변경 커밋

파일을 편집한 후에는 변경 내용을 git에 커밋해야 합니다.이 명령어를 실행하면 커밋메시지가 요구됩니다.이 메시지는 변경 내용을 모든 사용자에게 알려주는 단순한 텍스트입니다.

$ git commit source/main.c

./source/ 디렉토리의 main.c 파일을 커밋합니다.

$ git commit -a # the -a flag pulls in all modified files

변경된 모든 파일을 커밋합니다(새 파일은 아니지만 git-add를 사용하여 인덱스에 추가해야 합니다).특정 파일만 커밋하려면 먼저 git-add로 스테이징한 후 -a 플래그 없이 커밋해야 합니다.

커밋하면 로컬 저장소만 변경되고 원격 리포지토리는 변경되지 않습니다.커밋을 리모트저장소로 송신하려면 , 푸시를 실행할 필요가 있습니다.

$ git push <remote> <branch> # push new commits to the <branch> on the <remote> repository

CVS 또는 SVN에서 온 사용자에게는 중앙 저장소에 대한 커밋이 2단계 필요하기 때문에 이는 변경 사항입니다.

어떻게 분기합니까?

는 git으로 불립니다.master

새 분기 사용을 작성하려면

git branch <branch-name>

현재 리포지토리 유형의 모든 분기 목록을 보려면 다음과 같이 하십시오.

git branch

다른 브랜치로 전환하고 싶은 경우 다음 명령을 사용할 수 있습니다.

git checkout <branch-name>

새 분기를 만들고 한 번에 전환하려면

git checkout -b <branch-name>

분기를 삭제하려면

git branch -d <branch-name>

현재 브랜치에서 변경된 내용을 사용하여 브랜치를 작성하려면 다음 작업을 수행합니다.

git stash
git stash branch <branch-name>

최신 코드 가져오기

$ git pull <remote> <branch> # fetches the code and merges it into 
                             # your working directory
$ git fetch <remote> <branch> # fetches the code but does not merge
                              # it into your working directory

$ git pull --tag <remote> <branch> # same as above but fetch tags as well
$ git fetch --tag <remote> <branch> # you get the idea

리모트 저장소에서 코드의 최신 복사본을 취득하는 경우는 거의 모두 대상이 됩니다.

Pro Git 프리 북은, 특히 초보자에게 있어서, 제가 가장 좋아하는 책입니다.

Git Magic만 있으면 돼보증하지 않으면 돈을 돌려드립니다!

브랜치를 어떻게 통합합니까?

「」등).master로로 합니다.release하고 있는 브런치가브런치 사용).git branch ★★★★★★★★★★★★★★★★★」git status★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

그 후 사용

git merge master

서 (어디서)master마지(Marge)의 약칭입니다.

충돌이 있을 경우 다음을 사용할 수 있습니다.

git diff

해결해야 할 보류 중인 충돌을 보려면 이 옵션을 클릭하십시오.

Git Internals도 매우 유용하다는 것을 알게 되었습니다.Scott Chacon(Pro Git의 저자, Git 커뮤니티 북의 관리자)이 작성했습니다.Git Internals가 마음에 드는 것은 개념에 중점을 두고 명령어에 중점을 두고 있으며, 작은 페이지 100장까지이므로 빠르게 소화할 수 있다는 것입니다.

파일의 리비전 이력은 어떻게 표시됩니까?

git log -- filename

리모트 브랜치 추적하는 방법

로컬 저장소를 복제한 원격 저장소가 있고 해당 원격 저장소에 'some_branch'라는 이름의 브런치가 있다고 가정하면 다음과 같이 로컬로 추적합니다.

# list remote branches
git branch -r

# start tracking one remote branch
git branch --track some_branch origin/some_branch

# change to the branch locally
git checkout some_branch

# make changes and commit them locally
....

# push your changes to the remote repository:
git push

Git가 어떻게 작동하는지 이해하기 위한 정말 좋은 논문은 The Git Parable이다.추천!

파일의 두 리비전 또는 현재 파일과 이전 리비전을 어떻게 비교합니까?

는 Compare " " 입니다.git diff.

파일의 두 리비전을 비교하려면:

$ git diff <commit1> <commit2> <file_name>

그러면 commit1이 commit2에 대해 다르게 됩니다.순서를 변경하면 파일이 반대로 분산됩니다.이것은 예상과 다를 수 있습니다.

현재 스테이징된 파일을 저장소와 비교하려면:

$ git diff --staged <file_name>

저장소와 현재 비스테이지 파일을 비교하려면:

$ git diff <file_name>

왜 또 다른 방법이야?인터넷에는 아주 좋은 것들이 있어요. 시작하기에 딱 좋은 git 가이드 같은 것들이요.기고할 수 있는 git book(git hub에서 호스트)을 포함한 링크도 좋고, 이 일괄 작업에 매우 적합합니다.

스택오버플로우에서는 당신이 좋아하는 트릭을 보고 싶습니다!

최근에야 알게 된 제 건git stash현재 작업을 저장하고 다른 브랜치로 이동할 수 있습니다.

편집: 이전 투고와 같이 Wiki로 투고된 스택오버로우 형식을 원하시면 이 답변을 삭제하겠습니다.

콘솔 UI - Tig

설치:

apt-get install tig

사용.

git repo 내에서 'tig'를 입력하고 대화형 로그를 보려면 로그에 'Enter'를 눌러 자세한 내용을 확인하십시오.h는 도움말의 경우 기본 기능을 나열합니다.

트리비아

"Tig"는 거꾸로 "Git"입니다.

리모트 저장소에 브랜치를 작성하려면 어떻게 해야 합니까?

하나의 리모트저장소에서 리모트저장소를 복제했다고 가정합니다.

# create a new branch locally
git branch name_of_branch
git checkout name_of_branch
# edit/add/remove files    
# ... 
# Commit your changes locally
git add fileName
git commit -m Message
# push changes and new branch to remote repository:
git push origin name_of_branch:name_of_branch

정식 Git 튜토리얼을 시작했습니다.초보자도 충분히 실용적이라고 생각합니다(당신의 정의에 의하면, 저는 초보자였습니다만, 지금도 초보자입니다!make files를 거의 파악하지 못하고 Apache Subversion을 조금 가지고 놀았을 뿐입니다.)

리모트 저장소 브랜치를 삭제하려면 어떻게 해야 합니까?

.:

git push origin :mybranchname

존존 origin 및 "Remote(리모컨의 mybranchname

http://help.github.com/remotes/

푸시 앤 풀 변경

말하면, in하게 in하게하,, in 、git push ★★★★★★★★★★★★★★★★★」git pull변경사항이 병합되어 충돌이 있을 경우 git에서 사용자에게 알려주고 수동으로 해결할 수 있습니다.

는 " " 를 해야 .git push origin master(일부러)부터는 그냥 .git push.

「」가 붙은 .git push --tags.

체크아웃 코드

먼저 빈 dir로 이동하여 "git init"을 사용하여 저장소로 만든 다음 원격 repo를 자신의 repo로 복제합니다.

git clone user@host.com:/dir/to/repo

디폴트에서는 클론 작성원이 어디인지 "git pull"입니다.

담당자: http://macendeavor.com/gity

언급URL : https://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide

반응형