Git & Github 세팅 ( window )

2022. 11. 24. 18:06git & github

<Git 작업> => 버전관리 시스템
-Git은 프로젝트의 시간과 차원을 자유롭게 넘나들수 있도록 해줍니다.
-Git은 여러 사람들이 프로젝트에서 협업할 수 있도록 도와줍니다.

 

https://www.git-scm.com/

 

Git

 

www.git-scm.com

최신버전 다운로드

 

다운로드 경로

git bash 터미널

git-bash.exe 로 git terminal 오픈

visual studio code 로 git terminal 명령어 사용하기

terminal => new terminal => git bash 선택

소스트리

git 을 GUI 로 편리하게 다룰수 있는 툴

https://www.sourcetreeapp.com/

 

Sourcetree | Free Git GUI for Mac and Windows

A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

www.sourcetreeapp.com

 

Git 기본 명령어

1. Git 최초 설정
     -Git 전역으로 사용자 이름과 이메일 주소를 설정
     -GitHub 계정과는 별개

- $ git --version      => 버전확인
- $ git config --global user.name "binijjang"
- $ git config --global user.email "nhbini@nate.com"
- $ git config --global user.name    =>  이름확인
- $ git config --global user.email    =>  메일확인

 

*기본 브랜치명 변경(master)
 - $ git config --global init.defaultBranch main

 

2. 프로젝트 생성 & Git 관리 시작

- 임의의 폴더를 만든다 =>  git_sample1   (로컬 저장소가 될 폴더)
- 폴더에 a1.html , a2.html 파일 두개를 만든다
- git_sample 폴더에서 마우스 오른쪽 버튼 팝업 메뉴 에서 Git Gash Here 를 선택 또는 vs_code의 터미널 사용

- $ git init       =>   .git 폴더가 만들어져 있다(로컬저장소)
- $ git status     => 현재 로컬폴더와 git과의 싱크 상태를 체크
- $ git add -A     => 로컬 폴더의 모든 파일을 git의 타임캡슐(?)에 넣는다  (= $ git add .) , 파일은 하나 담을때( $ git add 파일명.확장자 )
- $ git status     => 상태를 체크
- $ git commit -m "first commit"    => 인식할 수 있는 commit을 달아준다 (타임캡슐1을 묻는다)
            -add와 commit 한꺼번에 =>  git commit -am "(메시지)"     -> 단 새로 추가된(untracked) 파일이 없을 때 한정
- $ git status     =>  확인하면 nothing to commit,  (더이상 묻을 캡슐이 없다)
- $ git log        =>  커밋의 로그 정보를 볼 수 있다
          -위로 스크롤(k)   -> git log등에서 내역이 길 때 사용
          -아래로 스크롤(j) -> git log등에서 내역이 길 때 사용
          -끄기(:q) ->  :가 입력되어 있으므로 q만 눌러도 됨
- 소스트리를 실행하고 폴더를 드래그 하면 로그 정보를 볼 수 있다
- a3.html 을 하나 더 만든다.
- $ git status 
- $ git add .    => 로컬 폴더의 모든 파일을 git의 타임캡슐(?)에 넣는다
- $ git status     => 상태를 체크
- $ git commit -m "second commit"    => 인식할 수 있는 commit을 달아준다 (타임캡슐2를 묻는다)
- $ git status     =>  확인하면 nothing to commit,  (더이상 묻을 캡슐이 없다)
- $ git log     

- a4.html 을 하나 더 만든다.
- a1.html, a2.html 은 내용을 수정한다 
- $ git status 
- $ git add .     => 로컬 폴더의 모든 파일을 git의 타임캡슐(?)에 넣는다
- $ git status     => 상태를 체크
- $ git commit -m "third commit"    => 인식할 수 있는 commit을 달아준다 (타임캡슐3을 묻는다)
- $ git status     =>  확인하면 nothing to commit,  (더이상 묻을 캡슐이 없다)
- $ git log    =>  캡슐의 정보들과 메시지들을 볼 수 있다 

 

3.Git의 관리에서 특정 파일/폴더를 배제
-포함할 필요가 없을 때   => 자동으로 생성 또는 다운로드되는 파일들 (빌드 결과물, 라이브러리)
-포함하지 말아야 할 때   => 보안상 민감한 정보를 담은 파일

-해당 root 폴더에 secrets.txt 파일을 생성하고    id:bini  pass:1234  입력한다
- $ git status
- 해당 root 폴더  .gitignore 파일을 생성하고 secrets.txt 를 입력한다
- $ git status


*.gitignore 형식

# 모든 file.c
file.c

# 최상위 폴더의 file.c
/file.c

# 모든 .c 확장자 파일
*.c

# .c 확장자지만 무시하지 않을 파일
!not_ignore_this.c

# logs란 이름의 파일 또는 폴더와 그 내용들
logs

# logs란 이름의 폴더와 그 내용들
logs/

# logs 폴더 바로 안의 debug.log와 .c 파일들
logs/debug.log
logs/*.c

# logs 폴더 바로 안, 또는 그 안의 다른 폴더(들) 안의 debug.log
logs/**/debug.log

 

4.Git에서 과거로 돌아가는 두 방식
-reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지웁니다.
-revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행합니다.

*과거로 돌아가기 - reset
-복원할 여지없이 그 이후는 완전히 삭제
  $ git reset 일련번호6자리(git log시 일련번호) --hard  

*과거로 돌아가기 - revert
-과거로 돌아갔다가 다시 돌아올 수 있는 방법
-돌아갈 시점이 아닌 취소할 시점을 선택한다
  $ git revert 일련번호6자리(git log시 일련번호) 
-그대로 저장하겠다는 vi명령어  =>  :wq 를 입력한다

-root 폴더의 .git 폴더를 복사를 해둔다(백업)   -> 맥에서 숨김 파일 보기: command + shift + .
-.git 폴더 없앤 다음 git 상태 확인해보기

1)reset 
  -과거로 돌아가기
       - $ git log
       - $ git reset --hard (돌아갈 커밋 해시)    =>   second commit 으로 돌아가보기
       - $ git status 
       - $ git log
   -reset 하기 전 시점으로 복원해보기
       - 백업해 둔 .git 폴더 사용
       - $ git status 
       - $ git log

2)revert 
  -과거의 커밋 되돌리기     
       -git revert (되돌릴 커밋 해시)    =>  second commit 되돌리기
       -:wq로 커밋 메시지 저장
  -reset 사용해서 revert 전으로 되돌아가기
      - $ git reset --hard (돌아갈 커밋 해시)    =>   revert 하기전의 마지막  commit 으로 돌아가보기      
       - $ git status 
       - $ git log

 

<Branch>

-프로젝트를 하나 이상의 모습으로 관리해야 할 때
       -예) 실배포용, 테스트서버용, 새로운 시도용
-여러 작업들이 각각 독립되어 진행될 때
       -예) 신기능 1, 신기능 2, 코드개선, 긴급수정...
       -각각의 차원에서 작업한 뒤 확정된 것을 메인 차원에 통합

 

-브랜치 관련 명령어
   - $ git branch 브랜치명   => 브랜치 생성
   - $ git branch  => 브랜치 목록 확인
   - $ git switch 이동할브랜치  => 해당 브랜치로 이동  (*checkout 명령어가 Git 2.23 버전부터 switch, restore로 분리)
   - $ git switch -c  브랜치명   =>  브랜치 생성과 동시에 이동하기 (*기존의 git checkout -b (새 브랜치명))
   - $ git branch -d (삭제할 브랜치명)   =>  브랜치 삭제하기 (다른 브랜치로 가져오지 않은 내용이 있는 브랜치를 지울 때는 -d 대신 -D(대문자)로 강제 삭제해야 합니다.)
   - $ git branch -m (기존 브랜치명) (새 브랜치명)  => 브랜치 이름 바꾸기
   - $ git log --all --decorate --oneline --graph    =>  여러 브랜치의 내역 편리하게 보기

 

https://corineee.tistory.com/58

 

Git & Github 세팅2 ( window )

$ git init => 지정한 폴더안에 .git폴더가 생성된다 *Push 할때 $ git remote add origin git경로 =>git repository와 연결 remote: permission to error 발생시 => git remote set-url origin 경로 $ git remote -v $ git status => 현재 로

corineee.tistory.com