Git 초기 설정
1.사용자 정보 설정
저장소에 코드를 반영할 때 등록될 사용자 정보를 설정한다.
프로젝트 마다 다른 사용자 정보를 지정하고 싶으면 저장소 생성 후 --global 옵션을 빼고 실행해주면 된다.
2. 설정 정보 확인
아래의 명령을 실행하여 앞에서 설정한 내용을 확인해볼 수 있다.
GIT 저장소 만들기
1) 기존 디렉토리를 git 저장소로 만들기
기존 프로젝트를 Git으로 관리하고 싶을 때, 프로젝트의 디렉토리로 이동해서 아래와 같은 명령을 실행한다.
git init : 기존의 디렉토리를 git repository로 설정
이 명령은 .git이라는 하위 디렉토리를 만든다.
즉, 새로운 git 저장소가 만들어진다.
git이 파일을 관리하게 하려면 저장소에 파일을 추가하고 커밋해야 한다.
git add명령으로 파일을 추가하고 커밋한다.
1-1)기존 디렉토리 사용 :Git을 사용할 프로젝트 폴더로 이동 후 아래의 명령어를 실행
git intit
1-2)프로젝트 디렉토리에 .git티렉토리가 생성되며 저장소 생성이 완료
ls -al
ex1)
Q. test라는 폴더를 git저장소로 만들려면 어떤 명령어를 수행해야 할까?
사용자가 위치에 있는 곳은 c:Users/A이고 test라는 폴더는 c:/Users/A/B/test에 위치해있다.
A. git init ./B/test
ex2)
2)기존 저장소를 clone하기
다른 프로젝트에 참여하거나 Git 저장소를 복사하고 싶을 때 git clone 명령을 사용한다.
git clone을 실행하면 프로젝트 히스토리를 전부 받아온다.
실제로 서버의 디스크가 망가져도 클라이언트 저장소 중에서 아무거나 하나 가져다가 복구하면 된다.
git clone명령으로 저장소를 clone한다.
수정하고 저장소에 저장하기
git pwd : 현재 경로를 보여준다.
git ls : 현재 경로에있는 directory 목록(list)를 보여준다.
git cd : 경로 이동
git status : 파일의 상태 확인하기(add 안한거 확인)
git add : 수정한 코드 선택하기 ( git add *, git add <파일 이름> ) , 파일을 새로 추적하기
git pull : (상대방과 겹칠수있으니 상태 업데이트를 위한것으로) git서버에서 최신 코드 받아와 merge하기
->esc->shift+: ->wq(write quit)
(git fetch : 코드를 받아온다.)
pull과 fetch의 가장 큰 차이는 merge를 하냐 하지않는냐의 차이이다.
fetch의 경우 코드를 받아온 후 즉시 코드를 반영하지 않아, 작업한 코드가 충돌이 일어날 경우에 안전하지만,pull은 코드를 받아온 후 즉시 merge하여 코드를 반영하기 때문에 충돌이 일어 날 수 있다. 이 경우 충돌을 해결해주고 다시 commit하면 문제없다.
git commit : (꾸러미를 포장한다라고 생각하기), Unstaged 상태의 파일은 커밋되지 않기때문에 stage 상태로 만들기 위해서는 해당 명령어를 실행해야한다.
(git commit -m "변경된 메시지 내용을 입력")
git push : 변경된 내용인 add하고 commit한 코드 git server에 보내기(마지막으로 커밋한 사항을 git repository에 올리겠다는 뜻이다. git push [리모트 저장소 이름][브랜치 이름]
git push -u origin master :-u는 원격저장소로부터 업데이트를 받은 후 push를 한다는 의미로 습관적으로 -u사용을 권장한다. 이유는 clone한 사람이 여러명 있을 때, 다른 사람이 push한 후에 push하려고 하면 push할 수 없기 때문에 먼저 다른 사람이 작업한 것을 가져와서 머지한 후에 push할 수 있다.
그리고 다른 브랜치를 발행하려면 master를 원하는 브랜치 이름으로 바꿔주어야 한다.
요약) git저장소에 변경내용을 올릴때는 pull->commit->push 해준다.
'Programmer > 그 외' 카테고리의 다른 글
[리뷰] 코딩 인터뷰 완전 분석 - 기술적 문제 (0) | 2020.12.07 |
---|---|
[git] Git 원격 저장소 (0) | 2020.06.03 |
[git] Git 가지치기 (0) | 2020.06.03 |
[git] Git 시작하기 (0) | 2020.06.02 |
[git] Git의 특징 (0) | 2020.05.30 |