분산 버전 관리 시스템
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내용을 원격저장소에 올린다.
6)
git branch -M main
=> master라는 이름을 main으로 바꿔준다.
7)git push origin main
=> master가 아닌 main 브랜치에 push를 한다.
레퍼지토리의 세팅 -> Manage Access를 보면
invite a collaborator
에서 원하는 github 아이디를 가진 사람을 초대하여 해당 레퍼지토리를 같이 사용할 수 있다.
원격저장소에서 다른 사람에 의해 수정된 형태일때 로컬저장소로 수정된 내용을 가져오고싶을 때 pull을 사용한다.
merge incoming changes into the current branch
를 누른다.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(로컬)을 진행해야하는 것으로 판단된다. 1)
git clone url
=> 해당 위치에 프로젝트 파일을 포함한 폴더를 만든다.
2)git clone url .
=> 해당 위치에 파일들을 전부 만든다.
clone은 전체를 한번에 받아오는 것이고
pull은 기존에 로컬에 있는 내용에서 원격에서 수정된 부분을 가져오는 것이다.
git add 를 하면 해당 파일은 stage 상태이다. (커밋 대기 상태 = stage area)
git branch 이름
: branch 생성
git checkout cat
: 해당 branch로 이동 (요즘은 switch를 쓴다더라)
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) 정상적으로 병합이 되는 것을 확인 할 수 있다.
Can't commit changes due to unresolved conflicts.
1) A의 레퍼지토리에서 fork해서 만든 나의 레퍼지토리에서 A의 레퍼지토리로 pull request를 진행할 때 (권한이 있을 경우)
2) A의 레퍼지토리에서 git clone으로 나의 원격저장소가 아닌 바로 로컬저장소에서 push를 할 때 (권한이 없을 경우)
1) amend
2) stash
3) reset
4) revert
5) cherry-pick