git 사용법

KHW·2021년 8월 4일
0

github

목록 보기
6/9

1. GIT

분산 버전 관리 시스템

  • CLI와 GUI로 사용할 수 있다.

2. Git 사용방법

1) git init =>.git을 생성(유니크하게 만든다)
2)git add 추가파일 => stage에 올라간다.
3) git commit -m "message" => commit 대상 내용 설정
+a) 기존에 설정이 없다면
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
해당 설정이 필요하다.
4) github내에서 repository 설정 후 해당 링크 가져온다.
5) git remote add origin 링크 => 원격저장소와 로컬저장소 연결
6) git push origin master => 로컬저장소의 add내용을 원격저장소에 올린다.

  • 'Black Lives Matter' 운동에 발맞춰 주종(주인과 노예)관계를 뜻하는 'master', 'slave'를 다른 단어로 대체하기 위해서 main을 사용을 하고 있다.

6) git branch -M main => master라는 이름을 main으로 바꿔준다.
7) git push origin main => master가 아닌 main 브랜치에 push를 한다.


3. Collaborator

레퍼지토리의 세팅 -> Manage Access를 보면 invite a collaborator에서 원하는 github 아이디를 가진 사람을 초대하여 해당 레퍼지토리를 같이 사용할 수 있다.


4. pull 기능

원격저장소에서 다른 사람에 의해 수정된 형태일때 로컬저장소로 수정된 내용을 가져오고싶을 때 pull을 사용한다.

  • intellij의 경우 오른쪽 위에 아래와 같은 것 중에서 파란부분을 눌러 merge incoming changes into the current branch 를 누른다.

5. Pull 에러 처리하기

1) 원인

  • No tracked branch configured for branch main or the branch doesn't exist

2) 해결책

  • git branch --set-upstream-to=origin/main main 명령어 입력

3) 해결책의 이유

  • 위의 사진처럼 파란색을 누르면 git pull origin master 명령이 아닌 git pull형태의 명령으로 인식하기에 가져오는 대상과의 연결에서 문제가 발생한 듯 하다. 이를 해결하기 위해 해결책 부분의 set인 세팅을 origin/main(원격)과 main(로컬)을 진행해야하는 것으로 판단된다.

6. git clone

1) git clone url => 해당 위치에 프로젝트 파일을 포함한 폴더를 만든다.
2) git clone url . => 해당 위치에 파일들을 전부 만든다.

  • clone을 하면 .git 은 자동으로 생김

7. clone vs pull

clone은 전체를 한번에 받아오는 것이고
pull은 기존에 로컬에 있는 내용에서 원격에서 수정된 부분을 가져오는 것이다.


8. stage 상태

git add 를 하면 해당 파일은 stage 상태이다. (커밋 대기 상태 = stage area)


9. branch와 merge 그리고 conflict

git branch 이름 : branch 생성
git checkout cat : 해당 branch로 이동 (요즘은 switch를 쓴다더라)


conflict 상황

1) branch issue2를 만들고 txt 내용을 수정하고
2) branch issue3를 만들고 같은 부분의 txt 내용을 수정하고
3) main에서 issue2를 merge한다. (문제 X)
4) main에서 issue3를 merge한다. (문제발생)

원숭이도 이해할 수 있는 Git 명령어
add: 변경 사항을 만들어서 인덱스에 등록해보기
<<<<<<< HEAD
commit: 인덱스의 상태를 기록하기
=======
pull: 원격 저장소의 내용을 가져오기
>>>>>>> issue3

5) 이러한 부분의 원인 부분을 수정한 후 git add / git commit을 진행한다.

6) 정상적으로 병합이 되는 것을 확인 할 수 있다.

  • 주의 : intellj에서는 해당 5)를 아래와 같이 진행하려하면
    Can't commit changes due to unresolved conflicts.
    오류가 나는 발생했어서 그럴 땐 Intellij 내부의 terminal에서 add / commit 을 진행하자

10. Pull request

1) A의 레퍼지토리에서 fork해서 만든 나의 레퍼지토리에서 A의 레퍼지토리로 pull request를 진행할 때 (권한이 있을 경우)
2) A의 레퍼지토리에서 git clone으로 나의 원격저장소가 아닌 바로 로컬저장소에서 push를 할 때 (권한이 없을 경우)

  • 해당 내용은 1)은 경험으로 맞다고 생각하나 2)부분은 아직 불확실하다고 생각한다. (경험을 못해서)

11. 다른 명령어 모음

1) amend
2) stash
3) reset
4) revert
5) cherry-pick


출처

branch

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글