git에 대한 기본적인 명령어와 흐름을 알아보자.
1. 로컬 저장소 만들기
- 파일들을 버전 관리할 장소(폴더)를 정한다.
- 그 안에서 'git init'이라고 명령어를 친다.
- 이상한 폴더, 파일들이 만들어지는데 git을 쓰기 위한 준비, 새로운 저장소
(repository)가 만들어진 것이다.
2. 원격 저장소 불러오기
- github에서 원격 저장소를 만들었다면 그것을 로컬과 연결시켜야 한다.
- 'git clone 사용자명@호스트:/원격/저장소/경로'라고 치면 된다.
- 사용자명 blabla..에 대해서는 github에서 원격 저장소에 들어가서
clone or download라는 버튼을 누르면 원격저장소의 주소가 나오니
그것을 쳐주면 된다!
git 저장소 다운로드 (git clone)
# git clone github 주소
* git에서 특정 브랜치만 clone하는 방법
git을 사용하다 브랜치 전체를 clone하지 않고 특정 브랜치 하나만 clone하는 것이 가능하다. 특히 브랜치가 많은 경우 이 방법을 사용할 수 있다.
git clone -b {branch_name} --single-branch {저장소 URL}
ex) git clone -b javajigi --single-branch https://github.com/javajigi/java-racingcar
위와 같이 실행하면 java-racingcar의 javajigi branch만 clone할 수 있다.
3. 작업한 내용 업로드하기
- 작업을 완료했다면 git과 원격 저장소에 반영해야 한다.
- 'git add 파일 이름' 혹은 'git add *'로 인덱스(staged state)에 추가시킨다.
- 이것은 일단 추가 대기 상태에 등록해놓은 것이고 실제로 추가시키려면
'git commit -m "이번 확정본에 대한 설명"'으로 커밋!한다
- 원격 저장소에 저장할 때는 'git push origin 가지이름'으로 푸쉬!해준다
* 그 전에 원격 저장소와 로컬 저장소의 폴더 구성이 다르다면, 즉 갱신
상태가 다르다면 먼저 pull, 그러니까 둘의 상태를 같게 해줘야 한다.
- 'git pull'로 하면 된다!
* error: failed to push some refs to 'https://github.com/pj6563/Online-Glasses.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
혹시 push할 때 다음과 같은 오류가 났다면 아마 위에서 말한 원격 저장소와 로컬 저장소의 상태가 달라서 나는 오류일 것이다.
그러니 pull을 먼저 해주어 둘의 상태를 같게 한 다음 push를 해준다
그리고 'git status'를 통해서 현재 git의 상태를 알 수 있으니 오류 해결에 적극 이용
하기 바란다!
4. git pull 강제로 하기
git fetch --all
git reset --hard origin/master
git pull origin master
git reset --hard origin/product
git pull origin product
2. git pull error 시 대처 방법
- 로컬 파일을 삭제 -> git pull 확인
- git status 로 확인
* 변경된 파일들 또는 문제가 되는 파일 리스트 확인
# git reset HEAD </path/file명>
- git pull
- 정상 확인
참고 URL : https://nesoy.github.io/articles/2017-03/Git-Stash
로컬 저장소에 있는 프로젝트를 깃허브 사이트를 통해 만든 저장소로 push 하는 경우에 이런 메세지가 뜨는 경우가 있다.
1
2
3
4
5
6
7
8
|
C:\Users\gitProject>git push origin master
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/userId/userProject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
|
cs |
push 전에 먼저 pull을 해서 프로젝트를 병합해 주어야 한다.
1
|
refusing to merge unrelated histories
|
cs |
pull 명령 실행시 이런 문구와 함께 진행되지 않는다면, 다음의 명령으로 실행한다.
1
|
git pull origin 브런치명 --allow-unrelated-histories
|
cs |
--allow-unrelated-histories 이 명령 옵션은 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용된다고 한다. 즉, git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것이다.
5. git 저장소 변경
git remote set-url origin [git 저장소 주소]
6. Git 에서 비밀번호 물어보지 않게 하기
Git 를 사용할 때 git pull 등의 명령어를 실행할 때 비밀번호를 물어보게 될 때 매번 물어보지 않게 하는 방법을 안내한다.
두가지 방법이 있는데
1. repository url 에서 비밀번호는 입력하는 방법
2. 캐시를 설정하는 방법
이 있다.
git clone 을 할 때 다음과 같이 비밀번호를 미리 입력한다면 비밀번호를 물어보지 않는다. 이렇게 이용할 수도 있으나 추천 하지는 않는다.
git clone https://myid:mypassword@bitbucket.org/myid/myapp.git
캐시를 설정하여 특정시간동안 비밀번호를 다시 물어보지 않게끔 할 수 있다.
여기서 –global 옵션과 함께 명령어를 실행한다면 모든 계정에 대해서 캐싱을 한다는 의미이다. 만약 특정 git 디렉토리만 설정한다면 –global 옵션을 제거해 주면 된다.
git config --global credential.helper cache
디폴트는 900초(15분) 동안 캐시를 저장하므로 15분이 지나고 다시 시도하면 비밀번호를 다시 물어보게 된다.
넉넉하게 타임아웃을 설정할 수 있는데 만약 10일간 캐시를 설정한다고 한다면 다음과 같이 입력하면 된다.
git config --global credential.helper 'cache --timeout=864000'
7. git branch 변경
# git checkout [브랜치명]
ex)
# git checkout product
8. github 소스 다운 및 로컬 저장소 연결하기
[github] python_study 저장소 연결 (로컬에서)
echo "# python_study" >> README.mdgit init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/karas639/python_study.git
git push -u origin master
…or push an existing repository from the command line
git remote add origin https://github.com/karas639/python_study.git
git push -u origin master
…or import code from another repository
You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
참고 : https://emflant.tistory.com/123
* 추후 계속하여 github 저장소로 push가 필요한 경우 해당 폴더로 이동 및 파일, 폴더 복사 후 아래 명령 실행
# git add 파일, 폴더명
ex) git add 01.\ 파이썬\ 기초\(딥러닝\ 및\ 인공지능\ 부록\)/
# git commit -m "메모"
# git push -u origin master
9. git 초기화
.git 폴더를 삭제
git init
git add .
git commit -m "test"
git push -u origin main or master
참고 URL :
http://emflant.tistory.com/135
http://thdev.tech/web/2016/08/14/Github-Page-CName-Setting.html
https://backlogtool.com/git-guide/kr/stepup/stepup1_1.html
'Programming' 카테고리의 다른 글
Visual Studio Code에서 Jupyter notebook 사용하기 (0) | 2020.11.16 |
---|---|
배치 파일 실행 시 선언한 변수 자동으로 지우기 (0) | 2020.10.26 |
주피터 노트북 시작 폴더를 내가 원하는 폴더로 변경 / ★단축키 (0) | 2020.10.26 |
jupyter notebook이란? Ipython. (0) | 2020.08.15 |
git 저장소 연결(로컬PC에서) (0) | 2020.08.07 |