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설정이 필요한 상태였음
해결
ssh키 새로 만들기
git 사용자로 연결하기
모든 연결은 github 사용자 이름이 아닌 git사용자로 이루어져야함
// ssh-keygen -t rsa -C "계정 메일주소" // 계정 등록
// 계정 등록 이후, git 사용자 연결 설정
$ ssh -T git@github.com
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에 반영된 내용이 안나옴
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/
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.여기서 부터는 언머지 파일을 삭제하던 뭐하던 옵션 선택
변경된 파일들의 코드를 하나씩 보여주고, 스테이지(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