[Git] Remote Repository

허재훈·2023년 5월 1일
0

Git

목록 보기
4/8
post-thumbnail

여기서는 누군가가 올려놓은 Remote 서버에 접속해서 Repository를 local로 copy 한 다음에 연동해서 작업하는 연습임.

1. Remote Repository 생성

  • 이미 누군가가 만들어놓은걸 받는 연습이기 때문에, 아래에 체크,체크를 해준다. git 알아서 add, commit 까지 해줌

참고 - README File
• 프로젝트에 대한 설명, 사용방법, 라이센스, 설치방법 등에 대한 내용을 기술하는 파일
• 나, 직장동료, 프로그램 사용자를 위해 존재(자세하게 기재하자)

참고 - .gitignore
• Git 버전 관리에서 제외할 파일목록을 지정하는 파일
• 사용자가 원하지 않는 파일들을 자동으로 commit 대상에서 제외시켜 줌

2. Default Branch

  • Repository 를 생성하자마자 기본으로 생성되는 하나의 Branch

  • local 에서 시작하면 master (git의 Default는 master)
  • remote에서 시작하면 main (github의 Default는 main)
  • main을 master로 바꿀 수 있다.
  • 아래에 기본값을 main에서 master로 바꿀 수 있는 방법도 있다

3. Remote Repository 복제하기

  • Local Repository 를 생성하지 않은 상태에서 Git Clone 명령을 사용하여 Remote Repository 를 Local 에 복제할 수 있음
  • Git Clone
    앞서 폴더를 만들고
    +Git Init 으로 해당 폴더를 초기화 하고
    +Remote Repository 를 등록하고
    +Remote Repository 의 내용을 Pull 하는 모든 과정을
    Git Clone 으로 할수 있음
git clone https://github.com/<repository>.git
  • Git Clone with username and token
git clone https://<username>:<token>@github.com/<repository>.git


  • Workspace 로 이동하여 Clone

test_project % cd ..
git_ws % git clone https://zerobase:ghp_yazM0qurHSashbS7wVeQcBEJQPRX3Mgzus
@github.com
/zerobasegit/HelloGit.git
Cloning into 'HelloGit'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.
  • Local Repository 생성 확인

git_ws % ls
test_project HelloGit
git_ws % cd HelloGit
HelloGit % ls -all
total 16
drwxr-xr-x 5 nomaefg staff 160 Nov 6 03:59 .
drwxr-xr-x 6 nomaefg staff 192 Nov 6 03:59 ..
drwxr-xr-x 13 nomaefg staff 416 Nov 6 03:59 .git
-rw-r--r-- 1 nomaefg staff 1799 Nov 6 03:59 .gitignore
-rw-r--r-- 1 nomaefg staff 10 Nov 6 03:59 README.md

4. Branch

  • Repository 가 생성되면 Default Branch가 생성됨
  • Branch가 있는 상태에서 버전이 매겨지게 됨
  • 특정 버전에서 다른 Branch를 낼 수 있음
  • 다른 Branch에서 다른 버전을 매길 수 있음
  • Branch가 활용되는 용도는 프로젝트마다 다양함
  • 병행으로 작업하거나, 하나는 메인, 하나는 릴리즈용 등등

Branch 조회 (Local Branch)

git branch
  • Branch 조회 (Local Branch만 조회됨) 실습
HelloGit % git branch
* main
# * 은 현재 위치를 나타냄 * main : 현재 main에 위치하고 있다는 뜻

Branch 조회 (Remote Branch)

git branch -r
  • Branch 조회 (Remote Branch) 실습
HelloGit % git branch -r
  remotes/origin/HEAD -> origin/main
  remotes/origin/main

Branch 조회 (Local + Remote)

git branch -a
  • Branch 조회 (Local + Remote) 실습
HelloGit % git branch -a
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/main

Branch 생성 (local에 생성)

git branch <branchname>
  • Branch 생성 실습 (branch01 생성)
HelloGit % git branch branch01
HelloGit % git branch
  branch01
* main (현재 위치는 main)

Branch 이동

git checkout <branchname>
  • Branch 이동 실습
  • main 에서 branch01 로 이동
HelloGit % git checkout branch01
Switched to branch 'branch01'
HelloGit % git branch
* branch01 (현재 위치가 branch01)
  main

(제일 오른쪽 (master) 도 (branch01)로 바뀌었다)

Branch 생성 + 이동

git checkout -b <branchname>
  • Branch 생성 + 이동 실습 (없으면 생성 + 이동)
  • branch02 생성, 이동까지
HelloGit % git checkout -b branch02
Switched to a new branch 'branch02'
HelloGit % git branch
  branch01
* branch02 (현재 위치는 branch02)
  main

(현재 remote에 push하지 않았으므로 반영되지 않아 main만 있는 상태임)

Branch 생성 (remote에 생성)

  • local에서 생성한 Branch를 remote에 넣는다
git push origin <branchname>
  • Branch 생성 (Remote Repository) 실습 - 1

HelloGit % git push origin branch01
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'branch01' on GitHub by visiting:
remote: https://github.com/zerobasegit/HelloGit/pull/new/branch01
remote:
To https://github.com/zerobasegit/HelloGit.git
  * [new branch] branch01 -> branch01
HelloGit % git branch -a
  branch01
* branch02
  main
  remotes/origin/HEAD -> origin/main
  remotes/origin/branch01  (remote에 branch01 추가됨)
  remotes/origin/main

(아래에 보면 main 외에 branch01이 추가되어 있다)

  • Branch 생성 (Remote Repository) 실습 - 2

HelloGit % git push origin branch02
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'branch02' on GitHub by visiting:
remote: https://github.com/zerobasegit/HelloGit/pull/new/branch02
remote:
To https://github.com/zerobasegit/HelloGit.git
  * [new branch] branch02 -> branch02
HelloGit % git branch -a
  branch01
* branch02 (현재 위치가 branch02)
  main
  remotes/origin/HEAD -> origin/main
  remotes/origin/branch01
  remotes/origin/branch02
  remotes/origin/main

(아래에 보면 main 외에 branch02가 추가되어 있다)

Branch 삭제 (Local Repository)

git branch -d <branchname>
  • Branch 삭제 (Local Repository) 실습 - 1
  • 아래는 에러가 뜸
  • 해당 branch에 머물러 있는 상태에서는 삭제가 안되는데, 현재 branch02에 머물러 있는 상태임.
  • 그래서 checkout 으로 이동 후 삭제

HelloGit % git branch -d branch02
error: Cannot delete branch 'branch02' checked out at '.../git_ws/HelloGit'
HelloGit % git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
  • Branch 삭제 (Local Repository) 실습 - 2
  • local branch02 삭제됨
  • remote branch02 그대로 남아있음

HelloGit % git branch -d branch02
Deleted branch branch02 (was 5561acc).
HelloGit % git branch -a
  branch01
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/branch01
  remotes/origin/branch02
  remotes/origin/main

  • Branch 삭제 (Local Repository) 실습 - 3
  • local branch01 삭제됨
  • remote branch01 그대로 남아있음

HelloGit % git branch -d branch01
Deleted branch branch01 (was 5561acc).
HelloGit % git branch -a
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/branch01
  remotes/origin/branch02
  remotes/origin/main

Branch 삭제 (Remote Repository)

  • Remote Repository에 해당 branch를 지웠다고 알려주는 느낌
git push origin --delete <branchname>
  • Branch 삭제 (Remote Repository) 실습 - 1

HelloGit % git push origin --delete branch02
To https://github.com/zerobasegit/HelloGit.git
  - [deleted] branch02
HelloGit % git branch -a
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/branch01
  remotes/origin/main

(branch02 가 사라져있음)

  • Branch 삭제 (Remote Repository) 실습 - 2

HelloGit % git push origin --delete branch01
To https://github.com/zerobasegit/HelloGit.git
  - [deleted] branch01
HelloGit % git branch -a
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/main

(branch01도 사라짐)

혼자서 해봅시다

1. Remote Repository 생성하기

• 이름 : branch_project
• Option : README.md, .gitignore (Python)

2. Local 에 Clone

• 위치 : git_ws 하위
• 생성 확인

3. Branch 생성 후 이동

• 이름 : branch01, branch02
• 이동 : branch01
• 확인 : Local Branch 목록 (현재 Branch 위치 - branch01)
• branch02 만들땐 생성+이동까지

(중간에 git branch -d branch02 는 오타임)

4. Branch Push

• Push : branch01, branch02
• 확인 : Remote Branch 목록, GitHub

5. Local Branch 삭제

• Local Branch 삭제 : branch01
• 확인 : Local Branch 목록 (에러상황 처리 포함)

6. 남은 Local Branch 모두 삭제

• main branch 제외
• 확인 : 전체 Branch 목록

7. Remote Branch 모두 삭제

• main, HEAD 제외
• 확인 : 전체 Branch 목록 , GitHub

위 글은 제로베이스 데이터 취업 스쿨의 강의자료를 참고하여 작성되었습니다.

profile
허재

0개의 댓글