728x90

계정 생성 및 등록 후 사용법

  1. 해당 github 주소에 가서 ssh의 url 복사
  2. remote add
  3. git push

 

1.해당 github 주소에 가서 ssh의 url 복사

 

 

2.remote 등록

git remote add [해당 SSH URL 주소]
ex)
git remote add git@github.com:zesinc/gycityjob.git

 

 

 

3.git push

새로생성한 remote명과 업로드할 해당 브랜치명을 push의 옵션으로 넣으면 된다

git push 새로생성한 remote명 브랜치명
ex)
git push originSSH develop

 

git bash에서 작업 내용

 

 

 

728x90
반응형

'Git & GitHub' 카테고리의 다른 글

[Git] Permission denied (publickey) 에러 해결  (0) 2023.06.03
[Git] git merge 정리  (0) 2023.04.15
[Git] git clean 정리  (0) 2023.03.25
[Git] Working Directory, Staging Area, Repository 개념  (0) 2023.03.18
[Git] git rm 정리  (0) 2023.03.12
728x90

 

사용 프로그램 & 버젼 등 환경

git bash 

win10

 

에러메세지

Permission denied (publickey)

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

 

상황

git clone할려고 하니 발생

 

원인

github 개인계정과 회사계정 동시에 쓰기 때문에 ssh설정이 필요한 상태였음

 

 

해결

  1. ssh키 새로 만들기
  2. git 사용자로 연결하기

모든 연결은 github 사용자 이름이 아닌 git사용자로 이루어져야함

// ssh-keygen -t rsa -C "계정 메일주소" // 계정 등록

// 계정 등록 이후, git 사용자 연결 설정
$ ssh -T git@github.com

 

아래와 같은 메세지를 볼 수 있다

 

참고자료

https://docs.github.com/ko/authentication/troubleshooting-ssh/error-permission-denied-publickey

728x90
반응형

'Git & GitHub' 카테고리의 다른 글

[Git] git SSH 설정 후 사용법  (0) 2023.06.30
[Git] git merge 정리  (0) 2023.04.15
[Git] git clean 정리  (0) 2023.03.25
[Git] Working Directory, Staging Area, Repository 개념  (0) 2023.03.18
[Git] git rm 정리  (0) 2023.03.12
728x90

 

 

목차 및 요약

git merge
git merge --e
git merge --edit       // edit message before committing
git merge --squash     // 머지전 커밋 하나 생성
git merge --ff         // allow fast-forward (default)
git merge --ff-only    // fast-forward가 불가능하면, merge 취소
git merge -m           // allow fast-forward (default)
git merge --message    // fast-forward가 불가능하면, merge 취소
git merge --squash     // git diff 기능을 머지 마지막에 보여주는 옵션
git merge --stat       // git diff 기능을 머지 마지막에 보여주는 옵션

 

 

git merge의 도움말

git mere -h 명령어로 확인 가능하며 디테일 정보를 얻고 싶으면 이를 보면 된다

 

 

git merge

옵션 없는 기본 머지 명령어

git merge

 

 

git merge --e, --edit

edit message before committing
커밋 전에 커밋문구 편집

git merge --e
git merge --edit    // 커밋하기 전에 메시지 편집

 

 

git merge --squash

create a single commit instead of doing a merge
머지 대신 커밋 하나를 만듦

git merge --squash   // 머지전 커밋 하나 생성

 

 

git merge --ff-only

abort if fast-forward is not possible
fast-forward가 불가능하면, merge 취소

git merge --ff         // allow fast-forward **(default)**
git merge --ff-only    // fast-forward가 불가능하면, merge 취소

 

 

git merge -m, -message

merge commit message (for a non-fast-forward merge)
-non-fast-forward merge용

git merge -m           // allow fast-forward **(default)**
git merge --message    // fast-forward가 불가능하면, merge 취소

 

 

git merge --stat

show a diffstat at the end of the merge
머지 마지막에 다른 부분을 보여줌

git merge --stat   // git diff 기능을 머지 마지막에 보여주는 옵션

 

 

728x90
반응형
728x90

 

git add -p란?

변경된 파일들의 코드를 하나씩 보여주고, 스테이지(index)에 올릴지 말지 선택하게하는 옵션

  • git status / git diff / git add (혹은 git checkout -- 파일명) 을 한번에 진행 하는 것

 

현재 2개의 수정파일이 있는 상태

git add -p를 하게되면 1번 dummy.java 파일의 수정된 부분을 보여주고 staging할지 말지 물어보고 다음 2번 local.java로 넘어가게 된다.

 

 

녹색 글씨는 각 파일에서 수정된 내용을 보여주는 것이고, 파란글씨가 해당 파일을 staging할지 말지 물어보는 것

 

 

두 파일 다 y를 누르므로써 Stage Area에 올린다고 했고, 빨간색에서 녹색으로 변한 것을 보면

제대로 잘 올라간 것을 확인할 수 있다

 

 

Stage this hunk [y,n,q,a,d,s,e,?]?

  • y : 해당 hunk를 스테이지에 올리기
  • n : 해당 hunk를 스테이지에 올리지 않기
  • q : 종료
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help

 

※ hunk란?

스테이지에 올라 갈 수 있는 하나의 단위

728x90
반응형
728x90

 

git diff 코드 정리

git diff
git diff HEAD
git diff --staged
git diff [filename]
git diff [branchname1]..[branchname2]

 

 

 

git diff란?

commit이나 branch 사이에 다른 점

파일(Working Directory)와 Repository 사이에 다른 점을 보여주는 명령어

출처 : [Git] git diff 한 번에 정리하기 — Dev World (kotlinworld.com)

 

 

git diff와 git diff HEAD 차이

1) git diff

Working Directory와 Staging Area 사이의 차이를 확인하기 위해 사용

  • caution : git add로 Staging Area로 넘어갔으면 git diff에서 보여주지 않음

 

2) git diff HEAD

Working Directory와 Staging Area 의 변경사항 모두를 Repository의 HEAD 커밋과 비교함

Staging Area에 올라간 내용은 물론 현재 작업 중인 내용(Working Directory) 모두 Repository의 HEAD와 비교됨

  • Staging Area로 올라가 안보인 변경사항은 git diff HEAD로 보인다

출처 : [Git] git diff 한 번에 정리하기 — Dev World (kotlinworld.com)

 

 

git diff 메세지 내용

상황 : test.txt에 원래 데이터 123에서 456을 추가함

  • 1번 ---a : 변경 전 파일 지칭명
  • 2번 +++b : 변경 후 파일 지칭명
  • 3번 test.text : 변경 전 파일명
  • 4번 test.text : 변경 후 파일명
  • 5번 - : 변경 전 파일 지칭
  • 6번 1,3 : 코드 1번 line 기준으로 3번 line까지 변경됐다는 의미
  • 7번 + : 변경 후 파일 지칭
  • 8번 1,6 : 코드 1번 line 기준으로 6번 line까지 변경됐다는 의미
  • 9번 123 : 변경 전 파일의 코드 1-3번라인의 내용
  • 10번 +4 +5 + 6 : 변경 전 파일(-) 1-3번 라인 뒤에 변경 후, 파일(+) 4-6번라인이 추가됐다는 의미

 

 

 

 

 

 

 

git diff --staged

git diff --staged는 Staging Area와 Repository HEAD 커밋 사이의 변경사항 확인을 위해 사용

커밋 전 사용되는 명령어로 가장 많이 씀

Staging Area에 올라간 변경사항만 Repository의 HEAD 커밋과 비교되며, 현재 작업 중인 Working Directory에서 git add되지 않은 변경된 사항은 반영x

※ git diff --staged와 git diff --cached 같다

출처 : [Git] git diff 한 번에 정리하기 — Dev World (kotlinworld.com)

 

 

git diff [option] [filename]

git add 파일명처럼 특정 파일에 대한 변경사항만 확인할 때 사용

git diff [option] [filename]

 

 

git diff [branch1]..[branch2]

브랜치 간 변경사항 확인

git diff [branch1]..[branch2] 

 

 

 

※ 그냥 git add 하면 git diff가 안나오는데 왜그럴까?

git diff는 Working Directory와 Staging Area 사이의 차이를 보여주는데,

git add를 통해 Staging Area에 변경 사항이 올라가버렸기 때문

 

 

 

 

참고자료

https://kotlinworld.com/278#git%--diff�%--%--%--git%--diff%--HEAD%--�%A-�%--�%-D%B-�%-A%A-�%--%-C%--�%B-%--�%B-�%--�%--��%--�%--�%--%--�%-D%B-

 

 

728x90
반응형
728x90

 

 

remote 연결, 조회, 연결해제

 

remote 연결

원격저장소(remote) 연결하기

git remote add <name> <url>

ex)

git remote add origin [<https://github.com/neverGiveUpppppp/kh-workspace.git>](<https://github.com/neverGiveUpppppp/kh-workspace.git>)

 

 

remote 목록보기

연결된 원격저장소(remote) 목록보기

git remote -v 

 

현재 로컬에 연결된 remote 목록    

 

remote 삭제

해당 원격저장소(remote) 삭제

git remote remove 리모트명

 

728x90
반응형
728x90

 

Fork란?

Fork는 포크로 집어 온다는 걸 연상하면 된다

팀프로젝트를 같이 깃허브에서 했다고 한다면 팀장의 깃허브에서 같이 작업했을텐데

해당 작업물을 내 리파지토리(저장소)로 끌어올 수 있는 편한 기능이다

 

팀프로젝트 깃허브 리파지토리에 들어가면 아래처럼 상단에 Fork가 보일 것이다

 

해당 아이콘을 누르면 아래의 페이지로 이동하는데

내 저장소로 가져갈 리파지토리 이름을 정하면 된다. create fork 클릭

 

Fork 업데이트하기

한번 포크해오고 나서 또 업데이트가 있어서 나중에 다시 Fork를 최신화 하고 싶을 때는 어떻게 해야할까?

포크한 리파지토리에서 가서 Sync fork를 누르고 Update branch 클릭 하나면 끝!!

728x90
반응형
728x90

 

깃을 처음 세팅하면서 유저 이름(name),이메일(email)을 등록하게 되는데

이때 오타가 있거나 등록한게 마음에 안들거나 한다면 변경하고 싶을 것이다. 나처럼ㅋㅋ

 

이렇게 name까지만 치면 현재 등록된 이름이 나온다

이메일도 마찬가지

 

변경하는 방법은 저 세팅 코드에서 name이나 email 다음 변경하기를 원하는 이름과 이메일주소를 넣으면 된다

$ git config --global user.name 변경할이름
$ git config --global user.email 변경할이메일주소

 

 

 

728x90
반응형
728x90

 

깃허브에서 디폴트 브랜치명이 master라 main으로 바꿨다.

예전에는 master라고 다들 썼는데 master slave라는 표현이 인권 문제 쪽 이슈 때문에

표현 자체가 좀 그렇다고 해서 깃허브에서도 main으로 쓸 것을 권유한다고 들었다. 그래서 겸사겸사 깃허브에서 브랜치명을 바꿨는데 깃배쉬에서는 여전히 master로 되어있어서 새로운 브랜치명으로 master로 만들어져서 들어가는 것 같았다.

그래서 깃배쉬에서의 master를 main으로 바꾸었다

 

1.브랜치 목록 확인

git branch

 

아래처럼 전체 브랜치 리스트를 볼 수 있다

 

2.브랜치 이름 변경

git branch -m 현재브랜치명 변경될이름의브랜치명

 

 

 

 

 

 

728x90
반응형
728x90

 

Merge하다  해당 메시지와 함께 아래의 화면이 나올 경우

Please enter a commit message to explain why this merge is necessary,

especially if it merges an updated upstream into a topic branch.

일단 이는 깃 에러 메시지가 아니라고 한다. 깃이 사용하는 디폴트값의 에디터라고 하며

해결방법은

  1. press "i" (i for insert)
  2. write your merge message
  3. press "esc" (escape)
  4. write ":wq" (write & quit)

이렇게 하여 빠져나왔다

 

출처

https://stackoverflow.com/questions/19085807/please-enter-a-commit-message-to-explain-why-this-merge-is-necessary-especially

 

728x90
반응형

+ Recent posts