2022. 11. 24. 18:06ㆍgit & github
<Git 작업> => 버전관리 시스템
-Git은 프로젝트의 시간과 차원을 자유롭게 넘나들수 있도록 해줍니다.
-Git은 여러 사람들이 프로젝트에서 협업할 수 있도록 도와줍니다.
Git
www.git-scm.com
최신버전 다운로드
다운로드 경로

git bash 터미널

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

소스트리
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