GitHub





잘만되던 깃허브였는데 다른 깃허브 계정 만들어서 하려고 하니까 이런게 뜬다.



Push failed: Failed with error: fatal: unable to access 'https://github.com/.../.....git/': The requested URL returned error: 403



찾아보니 ssh 키 등록을 해야 한다고 하는데



뭔소린지..



참고로 안드로이드 스튜디오 깃허브 설정은 밑 링크를 따라함

http://itpangpang.xyz/164


remote 주소를 ssh 주소로 변경한다.


깃허브에서 ssh 주소를 복사

저장소 우측 clone or dowload 클릭 후 Use ssh 클릭하면 ssh 용 git@로 시작하는 주소가 나온다




해당 프로젝트 우클릭해서 git Bash Here를 클릭




git remote -v 를 입력하여 현재 주소를 확인 https 로 되어있으면 변경해야한다.


변경 명령어는

git remote set-url origin [ssh주소]



변경 후 다시 git remote -v를 해서 확인한다.




그리고 ssh 키 존재를 확인해야 한다.


아래 명령어를 따라한다.




ssh키가 없다면 생성한다. 본인 이메일 입력


ssh-keygen -t rss -b 4096 -C "test@test.com"



키 확인 후 vi 편집기에서 아래와 같이 복사한다.





깃허브 로그인 후 setting 진입 

아래와 같이 수행



그럼 ssh key완료 끝


이제 푸쉬를 해본다.




git 명령어 정리

2013.09.26 15:53






#기본


git init

git clone 저장소주소 폴더명


지정한 커밋의 로그메세지를 수정

git commit -C HEAD -a --amend


변경내용 되돌리게..

git checkout -- 파일명


인덱스에 스테이징한거 취소(add한거)

git reset HEAD <file>


터미널에서 컬러로 나오게

git config --global color.ui "true";


환경변수보기

git config --global --list




#Stash

unstaged상태의 파일을 일시적으로 백업하고 워킹디렉토리를 깨긋하게유지(아직 커밋하면 안되는 작업중에 pull받아야하는데 그때 충동이 일어날경우…작업도 안됬는데 중간에 커밋하고 풀하는건 안좋다 이때 stash사용)

git stash

git stash pop //복구

git stash apply //스태시에서 제거하지않고 복구

git stash list

git stash show stash이름




#브랜치


브랜치 조회

git branch


새브랜치

git branch 브랜치명


브랜치 삭제

git branch -d 브랜치명


브랜치 이름변경

git branch -m 존재하는브랜치명 새로운브랜치명


태그붙이기

git tag 태그명 브랜치명


해당브랜치나 태그로 체크아웃

git checkout 브랜치명/태그명


해당 브랜치를 현재 브랜치로 합침

git merge 브랜치명


해당 브랜치의 변경사항을 현재 브랜치에 적용

git rebase 브랜치명




#로그관리

해당 파일의 마지막 변경 상세 이력을 볼수있다.

git blame 파일명


이전 커밋 취소

git reset 커밋명

git reset HEAD^ //최근1개의 커밋취소

git reset --hard HEAD 변경사항무시 마지막커밋 복구


커밋상세 정보를 보여준다.

git show 커밋주소




# 소스비교

영역 구분

워킹 트리 working tree (workspace)

인덱스 index (planned tree, staging area)

로컬 브랜치(현재 브랜치) local branch[local repository]

리모트 트래킹 브랜치 remote tracking branch[local repository] : 리모트 브랜치를 로컬에서 참조가능(fetch 명령으로 갱신)

리모트 브랜치 remote branch[remote repository]


1. 워킹 트리 → 인덱스

git status : 워킹트리에서 아직 인덱스에 add되지 않은 파일내역

git diff : 워킹 트리와 인덱스간 소스내용 차이점

git diff <파일> : 해당 파일에 대한 워킹트리와 인덱스간 소스내용 차이점


2. 인덱스 → 로컬 브랜치

git status : 인덱스에서 아직 commit되지 않은 파일내역

git diff --cached : 인덱스와 로컬브랜치(HEAD) 간의 차이점. "commit" 명령을 수행할 경우 반영되는 내용들


3. 워킹 트리 → 로컬 브랜치

git diff HEAD : 워킹 트리와 로컬 브랜치(HEAD)의 소스내용 차이. 마지막 commit 이후 변경사항. 

                     "commit -a" 명령을 수행할 경우 반영되는 내용들

git diff HEAD -- <파일> : 해당 파일에 대한 워킹트리와 마지막 commit 이후의 소스내용 차이점


4. 워킹 트리 → 리모트 브랜치

git diff FETCH_HEAD : 워킹 트리와 리모트 브랜치(FETCH_HEAD)의 소스내용 차이점

git diff FETCH_HEAD -- <파일> : 해당 파일에 대한 워킹 트리와 리모트 브랜치 소스내용 차이점


5. 로컬 브랜치 → 리모트 브랜치 : Outgoing Changes

git log FETCH_HEAD.. : 로컬 브랜치에서 리모트 브랜치에 반영할 변경내역(커밋기록)

git diff FETCH_HEAD... : 로컬 브랜치에서 리모트 브랜치에 반영할 소스 변경내용 


6. 리모트 브랜치 → 로컬 브랜치 : Incoming Changes

git log ..FETCH_HEAD : 리모트 브랜치에서 로컬 브랜치로 가져와야할 변경내역(커밋기록)

git diff ...FETCH_HEAD : 리모트 브랜치에서 로컬 브랜치로 가져와야할 소스 변경내용





#원격저장소


원격저장소의 변경사항을 가져와서 브랜치를 갱신

git fetch


새로운 원격저장소 추가

git remote add 이름 저장소주소


원격 저장소 목록확인

git remote


해당 원격저장소의 정보를 볼 수 있습니다.

git remote show 이름


원격저장소를 제거합니다.

git remote rm 이름



개별파일 원복

git checkout  -- <파일> : 워킹트리의 수정된 파일을 index(staging area)에 있는 것으로 원복

git checkout HEAD -- <파일명> : 워킹트리의 수정된 파일을 HEAD에 있는 것으로 원복(이 경우 --는 생략가능)

git checkout FETCH_HEAD -- <파일명> : 워킹트리의 수정된 파일의 내용을 FETCH_HEAD에 있는 것으로 원복? merge?(이 경우 --는 생략가능)

 

index 추가 취소

git reset -- <파일명> : 해당 파일을 index(staging area)에 추가한 것을 취소(unstage). 워킹트리의 변경내용은 보존됨. (--mixed 가 default)

git reset HEAD <파일명> : 위와 동일

 

commit 취소

git reset HEAD^ : 최종 커밋을 취소. 워킹트리는 보존됨. (커밋은 했으나 push하지 않은 경우 유용)

git reset HEAD~2 : 마지막 2개의 커밋을 취소. 워킹트리는 보존됨.

git reset --hard HEAD~2 : 마지막 2개의 커밋을 취소. index 및 워킹트리 모두 원복됨.

git reset --hard ORIG_HEAD : 머지한 것을 이미 커밋했을 때,  그 커밋을 취소. (잘못된 머지를 이미 커밋한 경우 유용)

git revert HEAD : HEAD에서 변경한 내역을 취소하는 새로운 커밋 발행(undo commit). (커밋을 이미 push 해버린 경우 유용)

 

워킹트리 전체 원복

git reset --hard HEAD : 워킹트리 전체를 마지막 커밋 상태로 되돌림. 마지막 커밋이후의 워킹트리와 index의 수정사항 모두 사라짐. 

                                  (변경을 커밋하지 않았다면 유용)

 

 

* 참조 : reset 옵션

--soft : index 보존, 워킹트리 보존. 즉 모두 보존.

--mixed : index 취소, 워킹트리만 보존 (기본 옵션)

--hard : index 취소, 워킹트리 취소. 즉 모두 취소..


  1. LHN 2015.07.09 10:17 신고

    정말 잘 정리되어있네요 !!!! 좋은 정보 감사합니다~~
    퍼가도 될지요 =ㅅ=

git 사용법

2013.09.26 14:43


아무리 해도 어려워...




잘 설명되어 있으나 내가 이해못하는 관련 링크들


완전 초보를 위한 깃 허브

http://nolboo.github.io/blog/2013/10/06/github-for-beginner/


git 간편 안내서

http://rkjun.github.io/git-guide/index.ko.html


git 사용가이드

http://www.slideshare.net/dhrim/git-12030742


git 사용법

http://kimseunghyun76.tistory.com/116



퀴즈로 알아보는 배우기 쉬운 git 브랜치 매뉴얼

http://learnbranch.urigit.com/?demo



개발자를 위한 고급 Git 활용전략

http://h3.paran.com/2011/session/advanced-git-tutorial.html


깃 입문

https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html




  1. 김병국 2014.04.03 15:50 신고

    좋은 정보 고맙습니다.
    git 한번 사용할려고 하는데, 감이 안 잡히네요.
    by http://linuxtip.net

    • yonoo88 2014.04.03 17:42 신고

      도움이 되셨다니 다행이네요

      저도 커밋 푸쉬 정도만 하고 나머지는 무서워서 안 쓰게 되더라구요.

      쓸 일이 없어서 일 수도 있지만요 ㅋㅋ

  2. LHN 2015.07.09 10:18 신고

    좋은정보 감사합니다 =ㅅ=!!! 한참 공부중이라 명령어 찾다가 들려요~

+ Recent posts

티스토리 툴바