Git, Github 중요자료(본인 작성), github 사용법

JooKit 주킷 2020. 6. 15. 19:17
목차 접기
728x90
반응형

※ [ GITHUB 최초 push하는 방법 & 오류 해결 방법 ]

== 최초 push ==

 

1. git init (현재 디렉터리에 Git 저장소를 생성한다.)

 

2. git status (장바구니 상태를 확인한다.)

 

3. git add .  입력   (현재 folder에 있는 모든 것을 장바구니에 담는다.)

 

4. git commit -m "commit 내용" 입력

 

5. git remote add origin https://github.com/아이디/저장소명.git 입력

 

☆ 혹시라도 저장소 연결을 잘못했다면?

git remote remove origin  입력   

->  origin 이라는 변수에 담은 저장소를 삭제한다.

 

6. git remote -v  입력 ( fetch, push 2개 나오는지 확인, 잘 등록되었는지

확인한다.)

 

7. git status 입력 ( On branch master nothing to commit,

working tree clean 이 보이는지 확인/보이지 않을 경우 과정이 잘못된 것)

 

8. git push origin master 입력

 

9. id, pw 입력

 

== 오류 해결 방법 ==

 

repository를 생성할 때, README 파일을 함께 생성할 경우 

최초 push를 할 때, 오류가 발생한다.

 

그럴 경우,

git pull origin 브런치명(master) --allow-unrelated-histories

 

위의 명령어를 입력하여 최초로 pull을 먼저하고, push를 해준다.

 

--allow-unrelated-histories  

이 명령 옵션은 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용된다고 한다.

 

즉, git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

[git, github 데이터 올리는 처리 과정, 순서]

1. github(원격지 server)에 repository 생성

2. 내컴퓨터에 repository 생성(과정을 통하여 .git 숨길파일 자동생성) / 아래 조장 선행 목록 참고

★working directory : 현재 작업중인 디렉토리 

-->working directory 안에 저장소를 만드는 것.

3. 저장소 2개 생성(server, 내컴퓨터)

4. 2개의 각 저장소를 만들어주었으므로 데이터를 공유할 수 있다(주고 받을 수 있음)

5. 물건을 주문할 때, 장바구니에 담고(1)  결제(2)를 한다.

6. git status(장바구니 상태 확인, 담는 과정) 

7. git commit -m "java github practice creation" 

--> 내컴퓨터 repository에 저장하는 행위(아직 server에 저장되지 않음/ 이대로 컴퓨터 종료하면 github에서 데이터를 받을 수가 없음)

8. github에 저장해주어야 한다. (github 안에는 저장소가 수백만개가 있음)

9. working directory 의 repository와 server의 저장소를 먼저 연결해주어야 한다.

10.  git remote add origin https://github.com/아이디/저장소명.git 입력  --> 2개의 저장소를 서로 연결해주는 행위.

 

 

[git, github 데이터 받아오는 처리 과정, 순서]

1. properties에 데이터를 받아올 working directory 만들기 (절대 한번에 받아올 수 없다)

2. git init 을 입력하여 데이터를 받아올 저장소를 생성해준다(하단의 상세 절차 참고)

3. 저장소를 만들어 준 후, git remote add origin ~~~~ 입력을 통하여 연결을 해주어야 한다.

4. pull 

 

 

 

 

 

  • 최초에 가져오기(꼭 워크스페이스 폴더에서 실행)
  • repository 내 모든 수정 되돌리기
    • git checkout .
  • 내 소스코드를 조장의 리포지터리의 최신 버전으로 만들기
    • git checkout .
    • git pull origin master
  • 특정 폴더 아래의 모든 수정 되돌리기
    • git checkout {dir}
  • 특정 파일의 수정 되돌리기
    • git checkout {file_name}
  • git add 명령으로 stage에 올린 경우 되돌리기(장바구니되돌리기)
    • git reset ( 이미 장바구니에 올린 것들 제거, 다시 장바구니에 담기 위해)
  • 과거로 돌아가기
    • git checkout {커밋번호}
  • 현재로 돌아오기
    • git checkout .
    • git checkout master
    • git checkout .
  • commit 입력한 내용 수정하기 
    • git commit --amend 
    • 명령어를 입력하고 수정, 저장하고 git push origin master 라고하면 된다.
  • git 로그인 정보 없애기
    • git config --global credential.helper manager
    • git credential-manager delete https://github.com

-------------------------------------------------------------------------------------------------------------------------------

 

[ 용어, 명령어 설명 ]

* repository : 하나의 저장소

==> project를 5개 만들고자 한다면 repository를 5개 만들면 된다.

--> project 1개당 repository 1개.

 

* 저장소 이름 예시 : java-ssg

★저장소 ↓

https://github.com/본인아이디/저장소 이름(java-ssg) --> 이것을 외워서 사용한다.

--> project를 하는 사람이 5명이어도 저장소는 위의 1개를 함께 사용한다.

 

* git은 ctrl + c / ctrl + v 가 입력되지 않는다.

* 방향키 ↑ 누르면 명령어를 직접 입력하지 않고 전에 입력했던 명령어들을 사용할 수 있다.

* 입력된 명령어들 지우기. 청소하기 --> clear 또는 ctrl + l 

* whoami : 현재 git 사용자 확인 

 

[ 컴퓨터를 format하지 않는 이상 딱 1번만 하면 되는 작업 ]

* config : 환경을 설정하다.

* git config --global user.name 

의미 : git의 설정에서 user.name 이 있는지 보겠다.

* git confit --global user.email 

==> 본인이 사용하기 위한 setting을 하고 사용해야 한다.

 

* git config --global user.name"사용자아이디(대소문자 구별)"

-->사용자 아이디 새로 setting

* git config --global user.email"사용자이메일(@~~~~~~)"

-->git사용자 이메일 새로 setting

 

 

git remote -v   : 연결되어 있는지 확인 

 

eclipse에서 .gitignore file을 만들고 무시할 항목을 적고 git status 확인해도 장바구니에서 빠진다.

--> git에서 code .  하지 않아도 된다.

 

* git clone https://github.com/*****/JDBC-TEXT-BOARD.git {임의 폴더명 입력}  

-->  eclipse -> properties 접속해서 어떤 폴더에도 들어가지 않고 Git Bash Here 접속해서 입력!

-->  폴더, git init, pull 하지 않아도 위에 코드만 입력하면 자동으로 내려 받아진다.

그리고 나서 -> cd {폴더명}   -> git log 입력 -> 생성자(조장)의 작업 리스트를 한눈에 확인할 수 있다.

내려받기 끝! 

 

* 최신 코드가 아닌 이전 코드를 내려 받고 싶으면 해당 페이지 접속 -> commit 복사 ->

git checkout {commit 복사한거 붙여넣기}  --> 이렇게하면 소스코드가 자동으로 바뀐다. 그 상태로 변한다.

 

* 과거로 돌아가기 (시간여행) ->  git checkout{commit 번호}

* 현재로 돌아오기(내려 받았던 최신코드) 

[순서] 1. git checkout .

         2. git checkout master

         3. git checkout .      순서대로 3가지를 입력해주어야 한다. 

 

 

 

 

[ repository 생성 ]

* repository 새로 만들기 --> https://github.com/new  접속

* repository name 작성

* Description : 서술, 기술, 설명

==> 해당 repository의 간단한 설명 정도.

* public (기본 선택값)

* 이 사이에 선택사항 일단 무시

* "Create repository" click ! 

 

● 선택사항 : 협력자를 초대할 경우

* settings -> Manage access -> invite a collaborator click! -> 협력자 정보로 초대

( ID or Email 입력 -> 협력자는 email 접속 후, 수락)

* 하단에 Pending Invite --> 초대 미수락 상태

 

[ github를 사용하기 위한 Git 설치 ]

https://git-scm.com/ 접속 -> download

 

[ 조장 선행 사항 : repository 생성자 ]

* eclipse 실행 -> project 열기

* 공유하고 싶은 project 우클릭 -> properties(성질, 특징) -> Location(show in system explorer) ->

공유하려는 project folder click -> 우클릭 -> Git Bash Here click -> user.name && user.email Check!

* project 우클릭 -> properties -> show in system explorer ->  project folder 접속(꼭 폴더 안으로 들어가야 함) 

-> 우클릭 Gib Bash Here -> pwd 입력 (내가 공유하고 싶은 folder가 나오는지 확인한다) -> git init 입력(현재 디렉터리에 Git 저장소를 생성한다) -> .git(숨김folder) 자동 생성 -> 공유할 folder, file 둘러보기 -> 우클릭 git bash here click -> git status 입력(지금 관리되고 있는 녀석들이 확인된다)

-> code . 입력(visual studio가 실행된다) -> .gitignore 생성(new file 생성) : git한테 무시해야될 리스트를 알려주는 행위 ->  생성한 file에 필요없는 항목을 모두 적는다(visual code in the file) -> git status를 참고해서 공유하지 않아도 되는 folder, file명 그대로 visual studio(.gitignore file)에 입력, 저장 해준다. 임의로 한개를 입력하고 git에서 git status(상태, 상황) 를 입력해보면 무시할 파일, 폴더는 제외된 것을 확인할 수 있다. -> .gitignore에 무시할 데이터를 모두 입력 후 git에서 git status 입력(장바구니 상태 확인) -> git add .gitignore 입력(장바구니에 담는 행위) -> git status 입력  -> 초록색으로 보이는 new file: .gitignore가 장바구니에 담긴 것을 의미(빨간색은 아직 담지 않은 상태를 보여준다/장바구니 상태)  -> git add . 입력(현재 folder에 있는 것을 모두 담는다는 명령어/1개씩 담기 번거로움) -> git status 입력 -> 초록색으로 보이는 것들이 모두 장바구니에 담긴것 을 의미 -> git commit -m "java github practice creation" 입력 (임의 이름 입력)_해당 데이터의 이름을 명시적으로 적어준다. 몇년 후에라도 알아볼 수 있도록(나, 팀원을 위해서) ->

-> git remote add origin https://github.com/아이디/저장소명.git 입력 (origin은 변수명 같은 것으로 임의로 지정하여 사용할 수 있지만 실무에서 보통 origin을 많이 사용한다/ 해당 저장소에 연결, 저장하겠다는 행위/즐겨찾기) -> ★혹시나 저장소 연결을 잘못한 경우에는 git remote remove origin 입력(해당 변수명의 주소값을 삭제하겠다는 의미) ->

git remote -v 입력(fetch, push 2개 나오는지, 잘 등록되었는지 확인한다) -> git status 입력( On branch master nothing to commit, working tree clean 이 보이는지 확인/ 보이지 않을 경우 과정이 잘못된 것) -> git push origin master 입력(올리는 행위) -> id, pw 입력 -> ★ 만약 id, pw 입력했는데도 되지 않을 경우 -> 

git config --system --unset-all credential.helper 입력 후 다시 git push origin master 입력 -> 올리기 끝! 

 

[ 조원(협력자)이 받아오는 방법 ]

방법 2가지 (최초, 그 이후)

= 최초 =

eclipse에 아무 project 우클릭, properties click -> show in system explorer ->  project들이 있는 창에 저장소명(java-practice)으로 folder 생성(어떤 project에도 들어가지 않은 채로, 그리고 절대 new project를 만드는 행위를 하면 안된다) -> 생성한 folder(java-practice)로 접속 -> 우클릭, Git Bash Here 열기 -> pwd 입력(접속한 folder 경로가 나오는지 확인해야 한다/Git Bash Here 를 연 폴더 경로) -> git init 입력(저장소 생성하는 행위)/ folder가 숨김파일되어 있을 수 있음

->  git remote 입력 -> 아무것도 출력되지 않는 것을 확인 할 수 있음 -> git remote add origin https://github.com/아이디(이름_repository생성자의)/java-practice.git 입력(remote repository는 팀원당 1개이다) _저장소를 만들어주고 연결해주는 행위 ->  git pull origin master 입력 ->  ls 입력(listing이라는 의미로 모든 file을 보여준다) -> 복사(내려받기) 완료 -> java-practice folder 안에 없던 데이터가 생성된다(내려받은 데이터들). 그렇지만 eclipse는 이 데이터들을 내려받았는지 알아차리지 못한다. -> eclipse 열기 -> File -> import click!(new project를 만드는 행위가 아닌 있는 데이터를 불러오기 위함으로) -> General -> Projects from Folder or Archive -> Directory(import source를 수정하거나) click! -> 불러오려는 folder 선택 -> finish -> 불러와진 데이터를 확인한다 ->  끝! 

 

 

[ 시나리오 ]

1. 조장(repository 주인)이 먼저 Main.java에 //화이팅 입력해보기. (push했던 project Main.java를 의미)

2. git status 입력 / modified 빨간색은 아직 장바구니에 담기기 전 상태를 의미.

3. 다시 1번 줄에 //화이팅을 지우고 properties - show in system explorer 접속 - 해당 project folder 접속 - 우클릭 Git Bash Here - git status 입력 -> On branch master nothing to commit, working tree clean (아무것도 할 게 없다, puch한 내용이랑 다를게 없다) 

4. 다시 //화이팅 입력 후 -> git add .  입력 ( 장바구니에 모든 데이터를 담는 행위) -> git status 입력(장바구니 확인) 

-> ★ 변경된 사항의 데이터만 골라서 담는것 같음... 

5. git reset : 장바구니 담는 것을 취소하는 행위

6. git reset 해본 후, 다시 //주석달고 임의의 단어 입력해서 다시 git add . 입력 -> git status 입력 -> 장바구니 상태를 확인한다.

7. git commit -m "화이팅 메세지 추가"   -> enter

8. 내 컴퓨터 저장소에 저장된 것 뿐.   server repository에 올려야 한다.

9. git push origin master    입력

 

[ ★ git, github 사용하면서 필수 작업 과정 ★  반복 행위 ]

== 조장(repository 생성자) ==

1. 작업

2. git add .      (장바구니에 담고)

3. git commit -m ""      (로컬 저장소에 추가하고)

4. git push origin master     (로컬 저장소에 있는 데이터를 서버에 올리고)   

5. ★commit 충돌로 pull이 제대로 되지 않는 경우, 

--> git stash 입력 후 git pull origin master를 다시 입력해본다.

그리고 가장 최신의 자료를 불러오지 않는 경우,,, 

 

 

== 조원(협력자) ==

1. git pull origin master (처음이 아닌 그 이후 내려 받을 때)

 

 

[ ★ 강사쌤 tip (project folder 내의 folder 설명) / 무시하거나 꼭 공유해야하는 데이터 선택 요령 ]

1. bin -> src(소스 코드)를 실행하면 생성되는 "실행 파일"

2. 소스코드는 공유해야한다.

3. bin은 소스코드를 공유하면 실행하는 순간 bin(실행파일) 생성되므로 공유하지 않아도 된다.

4. .settings : 조원(협력자가)이 한 설정 : 공유하지 않아도 된다.

5. .classpath, .project 

6. site(게시판 구현하면서 자동 생성되는 folder) --> 공유하지 않아도 된다. / db도 완전 필수는 아님.

7. lib (jackson) 공유

 

 

 

★★  협업 3차 5분부터 이어서 정리하기

 

* git clone https://github.com/****/****.git {임의 폴더명 입력}  

내가 입력한 프로젝트명의 폴더가 이미 존재하는 경우, .git 뒤에 띄어쓰기하고 새로 만들 폴더명을 입력해주면

그 폴더에 pull 데이터가 저장된다.

728x90
반응형
LIST