1. 프로젝트 폴더 내에서 로컬 repository 추가
$ git init
결과) Initialized empty Git repository in D:/mtMap/.git/
2. git 원격저장소 설정
$ git remote add [remote이름] [원격 repository url]
예시
$ git remote add mytest https://github.com/h92218/mytest.git
3. 원격저장소 설정한거 확인
$ git remote
결과) remote이름 표시됨
4. git에 올릴 파일 확인
$ git status
결과 ) 파일들 상태 표시
5. 파일 추가
$ git add -A
-A는 모든 파일 추가임
다시 한번 git status로 확인해보면
6. 커밋하기
$ git commit -m "message"
7. 푸시하기
$ git push [remote 이름]
예시
$ git push mytest
fatal: The current branch main has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream mt main
근데 아마 최초 푸시면 upstream으로 하라는 문구가 뜰 것.
해주면 됨.
$ git push --set-upstream mt main
Git global setup : 깃 전체 설정입니다~
git config --global user.name "userName"
git config --global user.email "userName@gmail.com"
Create a new repository : 레포지토리를 새로 생성하고 업로드하는 경우입니다~
git clone http://git 레포지토리 주소~~
git switch -c main
touch README.md
git add README.md
git commit -m "add README"
git push -u origin main
Push an existing folder : 레포지토리는 존재하고 git 업로드를 최초로 하는 경우입니다.
git init --initial-branch=main
git remote add origin http://git레포지토리주소~
git add .
git commit -m "Initial commit"
git push -u origin main
Push an existing Git repository : 사용하던 레포지토리에서 다른 레포지토리로 전환하여 업로드하는 경우
git remote rename origin old-origin
git remote add origin http://git레포지토리주소
git push -u origin --all
git push -u origin --tags
github에서 git repository 폴더 화살표 / 디렉토리 화살표 오류
CRLF will be replaced error
git config --global core.autocrlf true
non-fast-forward 에러
$ git push -u project master
To http://00.000.0.000:8090/project.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'http://00.000.0.000:8090/project.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.
원격 분기의 변경 내용을 로컬로 변경한 내용과 페치하고 병합하여 이 문제를 해결할 수 있습니다.
$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin YOUR_BRANCH_NAME
# Merges updates made online with your local work
또는 두 명령을 한 번에 모두 수행하는 데만 git pull을 사용할 수 있습니다.
$ git pull origin YOUR_BRANCH_NAME
# Grabs online updates and merges them with your local work
참고
https://docs.github.com/ko/get-started/using-git/dealing-with-non-fast-forward-errors
fatal: refusing to merge unrelated histories
git pull origin mybranch --allow-unrelated-histories
이 명령 옵션은 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용된다고 한다. 즉, git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것이다.
참고
https://gdtbgl93.tistory.com/63
Already up to date
alreay up to date 라면서 pull 안 될 때
$ git fetch --all
$ git reset --hard origin/master
git reset : HEAD의 포인터를 특정 위치로 옮기는 명령어
--hard 옵션 : 이전 커밋으로 돌아가기. 그 커밋 이후에 내용들은 삭제됨.
--mixed 옵션 : 커밋을 이동함. 변경 이력이 모두 삭제되지만 스테이지에 코드가 남아있음. 이 코드를 add 후 커밋하면 됨.
--soft 옵션 : mixed 옵션과 같지만 이미 스테이징 되어있음. 이 말은, add 없이 바로 커밋하면 된다~~
'코딩 관련 > 기타' 카테고리의 다른 글
[R] 문자열 합치기 (0) | 2021.10.14 |
---|---|
[R] x축, y축 라벨 제거하기 / 범례 제거하기(legend 제거) (0) | 2021.10.14 |
[Linux] packages excluded due to repository priority protections (0) | 2021.07.01 |
[R] 'origin'이 반드시 주어져야 합니다 (0) | 2021.04.30 |
[GitHub] 원격 저장소 remote origin 변경 (0) | 2021.04.13 |