Github/14일차

Github 등록과 사용법

swkn 2023. 3. 13. 15:43

형상관리, 버전관리 툴로 사용가능

git 세팅을 하게 되면 어디서든 작업 가능(git Repository)하다.

 

만약 수정했을때 수정했다면 git에서 자동추적하여 버전마다 저장되어 나중에 수정하려고 할때 좋다.

 

명령 프롬프트(cmd)에서 버전 검색할 프로그램 입력후 —version 입력하면 확인가능

ex) java --version

 

 

git 검색 후 설치

https://git-scm.com/download/win

 

Git - Downloading Package

Download for Windows Click here to download the latest (2.39.2) 32-bit version of Git for Windows. This is the most recent maintained build. It was released 26 days ago, on 2023-02-14. Other Git for Windows downloads Standalone Installer 32-bit Git for Win

git-scm.com

1. 64비트 윈도우 셋업 클릭 

- 명령 프롬프트(cmd)에서 버전 검색할 프로그램 입력후 —version 입력하면 확인가능

2. 로컬에 git 사용자 설정하기

1. 정보확인

git config --global --list

 

 

2. 사용자 정보(email, username) 입력

  1. git init
    1. git init 명령어를 통해 로컬 디렉토리를 git repository로 변환
  2. git add
    1. git add 명령어를 통해 로컬 디렉토리에서 작업한 파일들을 staging area로 이동
  3. git commit (커밋)
    1. git commit 명령어를 통해 staging area에 있는 파일들을 로컬 repository에 저장
  4. git push (써밋)git push 명령어를 통해 로컬 repository에 저장된 파일들을 원격 repository에 업로드
github 세팅
github 가입시 사용한 이름 , 닉네임

git config --global user.name '본인사용자이름'
git config --global user.email '본인이메일'
잘못입력했을 경우

git config --unset user.name ( 입력 )
git config --unset user.email ( 입력 )

입력 쪽에 본인 name , email 입력
fatal : not in a git directory

 

5. github repository 생성

 

6. 로컬에 git으로 관리할 폴더 지정

 해당 폴더에 접속 후 우클릭에서 git bash here 선택하면 터미널이 뜬다.

( 명령 프롬프트와 같은 기능이다)

git init

Initialized empty Git repository in D:/git_example/.git

터미널에서 github 연동

git remote add origin https://github.com/닉네임/repository 이름

git에서 repository 처음 만들었을때 만들어진 코드 참고

터미널에서 local list 확인

git config --local --list

 

현재 폴더에 현재 상태 확인

git status

폴더 지정하면 해당 폴더에 숨김 파일로 .git 폴더 생성됨.

폴더 안에 변화한 것이 있으면 추적한다

 

폴더안에 memo란 메모장을 만들면

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        memo.txt

nothing added to commit but untracked files present (use "git add" to track)


파일이 생기긴했으나 git에 등록시키진 않았다.

여기서 추가하려면 파일명을 입력하면 된다.

git add memo.txt

추가하면

On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   memo.txt

new file로 나오게 된다.

폴더 내의 파일 전체를 등록하고 싶을땐 아래와 같다

git add .

총 정리하자면 

$ git add memo.txt
//memo.txt 추가

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git status
//git 현재상태
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   memo.txt
//memo.txt파일이 수정되었다.

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git commit -m 'edit'
[main 6beb788] edit
 1 file changed, 1 insertion(+), 1 deletion(-)

//commit 메시지 edit으로 commit
//로컬 저장소에 저장


user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git push -u origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 266 bytes | 266.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/swknjj/my_first_git.git
   7cc1d31..6beb788  main -> main
branch 'main' set up to track 'origin/main'.

//push로 원격 저장소로 전송

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

//push로 전송하고 git status로 현재상태 확인

 

만약 기존파일을 수정하고 새파일을 만든다면

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.
//git 상태

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   memo.txt
        deleted:    memo2.txt
//memo 파일은 수정하고 memo2는 삭제하였다

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        memo3.txt
//memo3는 만들었지만 git에의해 관리되고 있지 않다

no changes added to commit (use "git add" and/or "git commit -a")

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git add .
// 하위 파일을 모두 add

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   memo.txt
        deleted:    memo2.txt
        new file:   memo3.txt

// memo3을 add했기 때문에 new file로 뜬다


user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git commit -m '갈아엎음'
[main b4ba026] 갈아엎음
 3 files changed, 3 insertions(+), 1 deletion(-)
 delete mode 100644 memo2.txt
 create mode 100644 memo3.txt

// 현재 상태를 commit하며 상태메시지는 '갈아엎음'

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git push -u origin main
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 333 bytes | 333.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/swknjj/my_first_git.git
   1b5e496..b4ba026  main -> main
branch 'main' set up to track 'origin/main'.

// 로컬 저장소에서 원격저장소 ( github repository ) 로 전송

Commit

1. 버전을 기록하는 과정

2. 하나의 commit은 하나의 과정이라고 볼 수 있음

3. 최소 1일 1commit ( commit명은 알아볼 수 있게 ex)title update식으로 작성해주는게 좋다)

4. commit을 잘하면 시간에 맞게 수정한 기록이 모두 남아 편리하다

5. commit 메시지는 의미있게 쓰는 게 좋다 ( 일련번호 등 )

>>git commit -m '커밋메세지' (무엇을 커밋을 했는지 잘 적자 !! 진짜중요)

Push

1. local의 기록을 github에 올리는 과정

2. push를 하면 직전 push했던 내용 이후 commit한 내용이 모두 github repository에 올라간다

3. github desktop을 사용할 수도 있다.

git push -u origin main

입력해서 github 로그인하면 github repository에 파일이 전송된다

 

정리하자면

1. 지정한 폴더에서 파일 생성

2. git init으로 파일 경로 설정

3. staging - git add로 추가

4. git commit -m 'commit message'로 commit

5. git push -u origin main 으로 github repository로 전송

 

 - 주의 ! push 전에 git status로 항상 확인하는 습관을 들여야 한다

 

만약 올렸던 파일을 다시 수정한다면

$ git add memo.txt
//memo.txt 추가

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git status
//git 현재상태
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   memo.txt
//memo.txt파일이 수정되었다.

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git commit -m 'edit'
[main 6beb788] edit
 1 file changed, 1 insertion(+), 1 deletion(-)

//commit 메시지 edit으로 commit
//로컬 저장소에 저장


user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git push -u origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 266 bytes | 266.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/swknjj/my_first_git.git
   7cc1d31..6beb788  main -> main
branch 'main' set up to track 'origin/main'.

//push로 원격 저장소로 전송

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

//push로 전송하고 git status로 현재상태 확인

 

 

기존 파일은 삭제하고 새로운 파일을  추가해보았다.

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.
//git 상태

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   memo.txt
        deleted:    memo2.txt
//memo 파일은 수정하고 memo2는 삭제하였다

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        memo3.txt
//memo3는 만들었지만 git에의해 관리되고 있지 않다

no changes added to commit (use "git add" and/or "git commit -a")

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git add .
// 하위 파일을 모두 add

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   memo.txt
        deleted:    memo2.txt
        new file:   memo3.txt

// memo3을 add했기 때문에 new file로 뜬다


user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git commit -m '갈아엎음'
[main b4ba026] 갈아엎음
 3 files changed, 3 insertions(+), 1 deletion(-)
 delete mode 100644 memo2.txt
 create mode 100644 memo3.txt

// 현재 상태를 commit하며 상태메시지는 '갈아엎음'

user@DESKTOP-3C7A94B MINGW64 /d/git_example (main)
$ git push -u origin main
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 333 bytes | 333.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/swknjj/my_first_git.git
   1b5e496..b4ba026  main -> main
branch 'main' set up to track 'origin/main'.

// 로컬 저장소에서 원격저장소 ( github repository ) 로 전송

 

 

하던 내용을 저장 ( push ) 하고 나면 다른 환경에서 사용하려면

 

해당 소스를 관리할 폴더를 만들고 git bash 를 실행한다.

>> git lnit
>> git clone '복사할 git repository 주소'

복사할 git repository 주소는 아래 사진을 참고한다.

코딩한 후 add , commit , push로 저장한다.

 

다시 다른 환경에서 작업을 하려면 버전을 맞춰주어야 하는데

작업하던 폴더에서 git bash 열고 아래 명령어 실행 (처음 설치하고 파일 받을 때 동일)
>> git pull origin main

 

 

IDE(통합 개발 환경)에는 이클립스 등이 있는데 이클립스 안에서 git bash 명령어 프로그램을 사용가능하다.