Git Part1 정보
입문
Git에 대한 조사는 모두 세 번 정리되었다.
섹션 1의 목표는 로컬 저장소와
이것은 원격 저장소를 능숙하게 사용하는 데 사용되는 설명입니다.
이를 바탕으로 이번에는 다음과 같은 두 가지를 설명한다.
1. Git의 구조 이해
2. Git와 GitHub의 협업
참조 사이트 git book
(그림은 본 사이트에서 인용, 양해 바랍니다)
Git 구조
Git 및 SVN
버전 제어 도구는 크게
Git와 SVN 두 가지가 있습니다.
각자에 따라 기재하다.
Git
SVN
분산 버전은 각 PC에서 서버와 동일한 데이터를 관리합니다.
서버에서 중앙 버전 제어 데이터 중앙 집중식 관리
스냅샷 변경 내용이 포함된 파일 자체는 로컬에서 저장하여 이전 버전으로 복구할 수 있습니다
저장 서버에서 차이 관리 기본 버전의 차이 얻기
Git의 세 영역
Git를 이해하기 위해 세 개의 영역이 있습니다.
1. 저장소
2. 보관소
3. 작업 디렉토리
저장소
과거 소스 코드 상태 (스냅샷) 저장 위치
로컬 저장소
원격 저장소 외부 서버의 저장소(예: GitHub)
보관 구역
현재 수정된 파일을 저장소에 등록하려면 변경 사항을 위치에 임시로 저장하십시오.
작업 디렉토리
파일 등, 실제 파일 편집 작업을 위한 디렉터리 변경
Git 워크플로우
1. Git 명령~ 기본~
git init
/로컬 저장소 새로 만들기 명령
Git에서 관리를 시작하는 명령으로 ".git"이라는 디렉토리를 만듭니다.
이 파일에는git 관리에 관한 모든 파일이 있습니다.
bash
$ git init
Initialized empty Git repository in XXXX.git/
git clone
• 기존 저장소 로컬 복제(클론) 명령
이 명령을 수행하면클론에git 폴더가 있는 원격 저장소
bash
$ git clone <リモートリポジトリのURL>
Cloning into '<リモートリポジトリ名>'...
warning: You appear to have cloned an empty repository.
git status
• 각 파일의 상태를 확인하는 명령
파일의 상태는 세 가지입니다.(변경되지 않을 경우 Ummodified)
1.Git에서 관리되지 않는 새 파일
2.Git에서 관리되고 수정된 파일
3.Git 관리 및 git add 파일
bash
$ git status
git add
· 파일을 임시 구역에 추가하는 명령
bash
$ git add <ファイル名 or ディレクトリ名>
git add -A (すべて)
git commit
· 임시 구역에 추가된 파일을 제출하는 명령
bash
$ git commit
git commit -m "<メッセージ>"
• 그러나 제출 후 메시지 오류또는 제출 내용이 다릅니다.두 번 제출하지 않음
때로는 제출 기록으로 남겨두고 싶을 때도 있다.(git log를 통해 확인)
• 댓글만 수정하려는 경우
bash
$ git commit
git commit -amend
エディタが開くので、コミットメッセージを修正。
上書き保存して、ファイルを閉じる。
· 파일을 수정할 때먼저 파일을 편집합니다.
bash
$ git add -A
git commit -amend
エディタが開くので、コミットメッセージを修正。
上書き保存して、ファイルを閉じる。
Git 명령~변경 취소~
git checkout
・ 작업 디렉토리의 변경 내용 취소
bash
$ git checkout <ファイル名 or ディレクトリ名>
$ git checkout .(すべて)
git reset
·이전 영역에 대한 변경 내용 취소
(git add의 취소)
bash
$ git reset HEAD <ファイル名 or ディレクトリ名>
$ git reset HEAD
$ git reset
※指定した変更をステージングエリアから除外するのみ。
ワークディレクトリ内のファイルが書き換わるのではない。
※git reset と git reset HEAD は同義
• 변경 내용 커밋 취소(git commit의 취소)
bash
$ git reset HEAD^
제목
현재 체크 아웃된 브랜치의 시작을 나타냅니다.
이게 이해가 되게 쉬워요.
( https://qiita.com/chihiro/items/d551c14cb9764454e0b9 )
2. Git 명령~ GitHub와의 협업~
origin과 master
원격 저장소 생성 시 기본값
git remote
• 원격 저장소 추가 이름 지정
bash
・リモート名という名でgitリポジトリを登録
$ git remote add <リモート名> <gitリポジトリ>
Ex.
$ git remote add origin https://github.com/XXXX.git
・リモートリポジトリを削除する
$ git remote rm <リモート名>
Ex.
$ git remote rm origin
・リモートリポジトリの一覧を表示する
$ git remote
origin
・リモートリポジトリの一覧をURL付きで表示する
$ git remote -v
origin https://github.com/XXXX.git (fetch)
origin https://github.com/XXXX.git (push)
・リモートリポジトリの情報を取得する
$ git remote show <リモート名>
・リモートリポジトリの名前を変更する
$ git remote rename <旧リモート名> <新リモート名>
git push
• 로컬 저장소의 컨텐츠를 원격 저장소에 반영
bash
・リモート名という名でブランチに送信
$ git push <リモート名> <ブランチ名>
Ex.
$ git push origin master
・次回からgit pushだけで済むようにする
$ git push -u <リモート名> <ブランチ名>
git fetch
• 로컬 저장소로 정보 검색
bash
・リモート名という名でブランチに送信
$ git fetch <リモート名/ブランチ名>
Ex.
$ git fetch origin master
git merge
• 로컬 저장소 정보를 작업 디렉토리에 반영
bash
$ git merge <リモート名/ブランチ名>
Ex.
$ git merge origin/master
git pull
・ 로컬 저장소로 정보를 검색하는 동안
작업 디렉토리에 반영
bash
・リモート名という名でブランチ & ワークディレクトリに送信
$ git pull <リモート名> <ブランチ名>
Ex.
$ git pull origin master
・上記と同じコマンド
1. $ git fetch <リモート名> <ブランチ名>
2. $ git merge <リモート名> <ブランチ名>
3. Git 명령~ 편리한 명령~
git diff
・ 파일 차이를 확인하는 명령
bash
・ワークディレクトリとステージングエリアの比較
$ git diff
git diff <ファイル名>
・ステージングエリアとリポジトリの比較
$ git diff --staged
git diff --staged <ファイル名>
git rm
파일 삭제 명령
bash
・リポジトリ、ワークディレクトリの両方にある内容を消す
$ git rm <ファイル名>
git rm -r <ディレクトリ名>
・リポジトリの内容のみ消し、ワークディレクトリを残す
$ git rm --cached <ファイル名>
git log
• 제출 내역 확인
확인 완료 후 Q 키로 종료
bash
・すべてのコミット履歴を見る
$ git log
・すべてのコミット履歴を1行ずつのコミット履歴で見る
$ git log --oneline
・最新の変更からx個前のコミット履歴を見る
$ git log -n x
git mv
파일 이름 바꾸기
bash
・ファイル名の変更
$ git mv <旧ファイル> <新ファイル>
・上記と同じコマンド
$ mv <旧ファイル> <新ファイル>
$ git rm <旧ファイル>
$ git add <新ファイル>
git config
・config 폴더에 저장된 정보 설정
bash
・リモート名という名でブランチに送信
$ git config --global <設定項目> "内容"
Ex.
$ git config --global user.name "Miyasako"
・すべての設定を確認する
$ git config --list
.gitignore 파일
· 파일이 있는 위치를 루트 디렉터리로
git 관리에서 지정한 파일을 제외합니다
gitignore
・ディレクトリを問わず、sample.txtを除外
sample.txt
# .gitignoreが置かれたディレクトリ内のsample.txtを除外
/sample.txt
상세한 상황은 아래와 같이 이해하기 쉽다.( http://www-creators.com/archives/1662 )4. Git와 GitHub의 협력
GitHub와 Git의 합작 방법은 다음과 같다.
1. GitHub에 저장소 만들기
2. GitHub 저장소 복제
git init
또는 git clone
.3. 로컬 편집 내용을 GitHub에 업로드
git add -A
git commit
git remote add origin <リポジトリのURL>
git push origin master
추가:git 데이터 보유 방법
·gitcommit 때 만든 대상은 3개입니다.
1.blob 객체
2. 트리 객체
3. 객체 제출
・ 3개의 파일이 포함된 카탈로그를 제출할 때
• 변경된 제출 트리(최근 제출 포인터)
블록 객체
· 파일 내용의 대상을 압축했다.
만약gitadd가 저장 영역에 가면,add 후의 파일이 압축되어blob 대상이 됩니다.
".git/objects"아래에 저장
· SHA-1 산열의 산열 값을 계산하고 작성하기 위해 같은 내용의 파일이 같은 산열 값이 됩니다.
bash
$ git cat-file -p master^{tree}
100644 blob 1c2e6eb9317f1786bb60b1a20d941fa725bb7523 sample.txt
100644 blob 2a412606369d7a1b3eb5c53514ba3f5de3a02602 sample_github.txt
트리 객체
· 디렉터리 내용의 일람과 파일이 어떤blob의 대상에 대응하는지 나타낸다
다음 그림에서 보듯이 트리 대상은 "blob 대상"과 "트리 대상"이다
저장, 디렉터리 층마다 트리 파일 만들기
bash
$ git cat-file -p master^{tree}
040000 tree b660134185b180a6827424797a8a3526fc770944 new_folder
100644 blob a3ff572543d64d658e113922453473906b19a8c1 sample.txt
100644 blob 2a412606369d7a1b3eb5c53514ba3f5de3a02602 sample_github.txt
$ git cat-file -p b660134185b180a6827424797a8a3526fc770944
100644 blob a3ff572543d64d658e113922453473906b19a8c1 sample2.txt
객체 제출
· 제출할 때의 메타데이터를 포함한다.
메타데이터의 내용은 다음과 같다.
$ git cat-file -p HEAD
tree c1003506f3efc11d16f0c9ab6f7e63f30ae88756
parent 66f83c3b6ca576467c6a3d0578c7f5320663c4b7
author ShoheiMiyasako <[email protected]> 1565766982 +0900
committer ShoheiMiyasako <[email protected]> 1565766982 +0900
フォルダを作成
・さらに1つ前のコミットオブジェクト
$ git cat-file -p 66f83c
tree 979925e5852c4980b4c8e93193fff43bf7a87b43
parent 0a702cdea8f9ea002c5ea03d296abfb57258c4e7
parent 3e70f7465f6c3c5fed053495c2708fd17cbd4319
author ShoheiMiyasako <[email protected]> 1565745981 +0900
committer ShoheiMiyasako <[email protected]> 1565745981 +0900
Merge remote-tracking branch 'origin/master'
끝내다
내 총결산을 참고할 수 있다면 다행이다.
여기서 마치겠습니다.
Reference
이 문제에 관하여(Git Part1 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Shohei_miyasako/items/b353273f5941278241d9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)