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 clean

untracked 파일 삭제하기
추적 중이지 않은 파일(untracked file)만 지우는 게 기본 동작
( .gitignore 리스트에 있는 무시되는 파일삭제 x )

 

untracked file이란?

깃에서 형상관리 하지 않는 파일들을 말한다. 즉, git에 연결되어있지 않은 파일들

$ git clean -f       // 디렉터리를 제외한 파일들만 삭제
$ git clean -f -n    // 어떤 파일이 지워질 지 알려줌
$ git clean -f -d    // 디렉터리까지 삭제
$ git clean -f -d -x // 무시된 파일까지 삭제
  • -d : 디렉터리까지 지우는 것
  • -x : 무시된 파일(.DS_Store나 .gitignore에 등록한 확장자 파일들)까지 모두 지우는 것
    • ex) .o 파일 같은 빌드 파일까지도 지울 수 있다.
  • -n : 가상으로 실행해보고 어떤 파일들이 지워질지 알려주는 것
728x90
반응형
728x90

Working Directory - Staging Area - Repository

1.Working Directory
2.Staging Area
3.Repository

1.Working Directory : 현재 작업 중인 파일,디렉토리(local 개념에 대비)
2.Staging Area : git commit만 하고 push하기 전 상태(staging 서버에 대비)
3.Repository : 원격 리모트(GitHub)에 올라가 있는 데이터(운영 서버와 대비)

 

git add하고 git diff하면 Staging Area에 올라가 있기 때문에 안나온다

 

git add하고 Staging Area에 데이터를 올린 상태에서 다시 git add한 파일을 또 수정하면 Working Directory만 변경됐고 Staging Area는 변경사항이 반영 안된 상태임. 반영할려면 다시 git add 해야한다.

 

 

git add하고 Staging Area에 데이터를 올린 상태에서 다시 git add한 파일을 또 수정하면 Working Directory만 변경됐고 Staging Area는 변경사항이 반영 안된 상태임
→ 이게 왼쪽 git diff 결과에 나온다

 

Working Directory 파일에 123456에서 마지막 7을 추가 저장한 상태라 Staging Area에는 반영이 안되서 git diff --staged에는 git diff에 반영된 내용이 안나옴

728x90
반응형

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

[Git] git merge 정리  (0) 2023.04.15
[Git] git clean 정리  (0) 2023.03.25
[Git] git rm 정리  (0) 2023.03.12
[Git] git revert -m : 머지 커밋(Merge commit)을 되돌리는 방법  (0) 2023.03.08
[Git] git revert 정리  (0) 2023.03.04
728x90

 

요약 & 목차

git rm [파일명]            // remote o, local o
git rm --cached [파일명]   // remote o, local x
git rm -n                  // 삭제될 파일 프리뷰(메세지는 뜨나 실제 삭제는 x)
git rm --cached -r [디렉토리명] // 디렉토리 전체 삭제

 

 

git rm

원격 저장소와 로컬 저장소에 있는 파일을 삭제

// 원격 저장소와 로컬 저장소에 있는 파일을 삭제한다.
git rm [파일명]
// 원격 저장소에 있는 파일을 삭제한다. 로컬 저장소에 있는 파일은 삭제하지 않는다.
git rm --cached [파일명]

이후 commit & push 해야 remote에 적용됨

 

 

 

git rm --cached : 파일 제거

원격 저장소에 있는 파일을 삭제한다. 로컬 저장소에 있는 파일은 삭제하지 않는다.

// 원격 저장소와 로컬 저장소에 있는 파일을 삭제한다.
git rm [파일명]
// 원격 저장소에 있는 파일을 삭제한다. 로컬 저장소에 있는 파일은 삭제하지 않는다.
git rm --cached [파일명]

이후 commit & push 해야 remote에 적용됨

 

 

 

git rm -n

삭제될 파일 프리뷰
(삭제 메세지랑 같은 내용이 뜨나 실제 삭제는 x)

git rm -n      // 삭제될 파일 프리뷰(메세지는 뜨나 실제 삭제는 x)

 

 

 

git rm --cached -r : 디렉토리 전체 제거

git rm --cached -r [디렉토리명]

ex)

// .idea/modules.xml 파일 삭제
$ git rm --cached .idea/modules.xml
// .idea 폴더 하위의 모든 파일 삭제 
$ git rm --cached -r .idea/

이후 commit & push 해야 remote에 적용됨

 

 

참고자료
https://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html

728x90
반응형
728x90

머지 커밋(Merge commit)이란?
그냥 커밋된 게 아닌 다른 것과 머지되면서 커밋된 것

머지 커밋(Merge commit)을 되돌릴 때(revert)는 어느 쪽 커밋으로 되돌릴 지(revert) 지정해주어야함
머지커밋 자체가 두개의 커밋이 하나로 합쳐진 것이기 때문에 두 커밋 중 어떤 걸로 되돌릴 지를 프로그램에게 알려줘야 되돌 수 있기 때문

git revert -m [순서번호] [commit hash]

 

 

순서번호 : git show에서 보여지는 Merge: 뒤의 값들에 차례대로 번호가 부여됨

git show ffea3b82201dc62a8741b414ebaec5dadcb2145d
commit ffea3b82201dc62a8741b414ebaec5dadcb2145d
Merge: f035f31 69bdd0d
Author: neverGiveUppppp <csy@naver.com>
Date:   Thu Feb 23 14:21:11 2023 +0900

    merge conflict resolve practice(feat.reminder)

git show한 ffea3b8은 f035f31과 69bdd0d 커밋이 merge된 커밋이라는 의미
이를 그냥 revert하면 아래의 에러 메시지가 발생하며 실패한다

 

error: commit [hashId] is a merge but no -m option was given.
fatal: revert failed

 

 

f035f31과 69bdd0d 둘 중 어떤 쭉으로 revert할지 프로그램에게 알려줘야한다
f035f31커밋으로 되돌리려면 -m 1
69bdd0d 커밋으로 되돌리려면 -m 2를 지정

git revert -m 1 f035f31  // f035f31
git revert -m 2 69bdd0d  // 69bdd0d 

(git show에서 보여지는 Merge: 뒤의 값들에 차례대로 번호가 부여됨)

 

1.머지커밋 된 커밋id를 찾는다
2.git show 해당 커밋id로 검색
3.git revert -m 1,2에 넣을 1,2번 번호와 커밋 내용을 보고 1,2번 어느 쪽으로 되돌릴 지 파악
4.git revert -m 1 해당커밋id(git show에서 썼던 id)
5.컨플릭트 발생할 거임
6.vi(http://6.vi) 파일명 해서 컨플릭트 내용 정리
7.컨플릭트 내용 삭제하고 다시 리버트하면 unmerger파일 에러 발생
8.여기서 부터는 언머지 파일을 삭제하던 뭐하던 옵션 선택

  • git rm [filename]
  • git revert --continue : 충돌 해결 및 런
  • git revert --skip : 되돌리기 하지만 이 패치 스킵
  • git revert --abort : 되돌리기 취소

 

cf) commit hash 확인하는 방법

1.Git Bash
git log

2.GitHub
커밋 히스토리 - 해당 커밋의 해쉬 클릭 - commit에서 해쉬 복사

 

참고자료
https://kyounghwan01.github.io/blog/etc/git/git-reset-revert/#reset
https://www.lainyzine.com/ko/article/git-revert-reverting-commit-in-git-repository/

728x90
반응형

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

[Git] Working Directory, Staging Area, Repository 개념  (0) 2023.03.18
[Git] git rm 정리  (0) 2023.03.12
[Git] git revert 정리  (0) 2023.03.04
[Git] git add -p  (0) 2023.03.01
[Git] git log 정리  (0) 2023.02.17
728x90

 

 

git revert

이미 커밋한 내용 되돌리기
(git revert 후 push까지 해줘야 커밋이 저장소로 올라간다)

git revert [commit hash번호]

 

 

※ git reset vs :git revert

reset은 해당 커밋 취소
Revert는 해당 커밋 위에 다시 커밋으로 덮어씌우는 것. 즉 커밋 이력이 남음

 

 

git revert HEAD

HEAD commit으로 되돌리는 커밋
git revert [commit id]에서 commit id대신 HEAD로 대체하여 자동으로 commit id를 적는 개념

 

 

git revert HEAD^

HEAD commit 바로 전 커밋으로 되돌리는 커밋

git revert HEAD   // HEAD로 돌리는 커밋
git revert HEAD^  // HEAD 바로 전 commit id로 돌리는 커밋

git log나 소스트리 보면 HEAD가 어딘지 파악가능
아래에서 HEAD는 6e32d35 커밋을 말하고 HEAD^는 그 아래인 fcce4d4를 의미함

 

 

git revert --no-commit

revert한 결과를 stage 상태만 유지하고, commit 하지 않는 명령어

git revert --no-commit [commit hash번호]

 

 

여러 커밋내용 revert 하기

git revert [commit hash번호]..[commit hash번호]

ex)

git revert [1번커밋해쉬]..[2번커밋해쉬]
git log // git log 찍으면

Revert "2번커밋해쉬"
Revert "1번커밋해쉬"

 

 

참고자료
https://kyounghwan01.github.io/blog/etc/git/git-reset-revert/#reset
https://www.lainyzine.com/ko/article/git-revert-reverting-commit-in-git-repository/

 

 

728x90
반응형

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

[Git] git rm 정리  (0) 2023.03.12
[Git] git revert -m : 머지 커밋(Merge commit)을 되돌리는 방법  (0) 2023.03.08
[Git] git add -p  (0) 2023.03.01
[Git] git log 정리  (0) 2023.02.17
[Git] git diff 정리  (0) 2023.02.11
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 log

 

git log -- pretty=oneline

한줄로 깔끔하게 나오는 log

 

git log -p

-p 는 각 커밋의 diff 결과를 보여줌

(-p와 --patch는 같다)

git log -p
git log --patch

 

git log --patch -2

최근 2개의 결과만 보여주는 옵션

직접 diff를 실행한 것과 같은 결과를 출력하기 때문에 동료가 무엇을 커밋했는지 리뷰하고 빨리 조회하는데 유용

git log --patch -2 

 

git log --graph --decorate --oneline

커밋 기록을 그래픽컬하고 간소하게 보여주는 옵션 적용

git log --graph --decorate --oneline

 

git log [branchname1]..[branchname2]

브랜치간에 차이점 비교

git log [branchname1]..[branchname2] 

 

git log -p [branchname1]..[branchname2]

브랜치간에 차이점 비교 + 코드비교

git log -p [branchname1]..[branchname2] 

 

git log --grep [검색어]

git log에서 특정 단어를 검색하여 보여주는 옵션

git log --grep [검색어]

 

git log --branches --not --remotes

푸시 안된 로그 확인

git log --branches --not --remotes

 

git log --stat

각 커밋의 통계 정보를 조회

--stat 옵션은 어떤 파일이 수정됐는지, 얼마나 많은 파일이 변경됐는지, 또 얼마나 많은 라인을 추가하거나 삭제했는지 보여줌

요약정보는 가장 뒤쪽에 보여준다

 

 

참고자료

https://git-scm.com/book/ko/v2/Git의-기초-커밋-히스토리-조회하기

https://wikidocs.net/17168

728x90
반응형

+ Recent posts