git 과 git 명령어

BackEnd_Ash.log·2020년 2월 16일
0

ash_git

목록 보기
7/10

2021.09.25 git log --stat
2021.09.26 git diff
2021.09.26 git push -f

git 이란 무엇인가 ??

git 은 vcs(Version Control System) 이다.

이 git 은 프로그램 등의 소스 코드 관리를 위한 분산 버전 관리 시스템이다.

분산 버전 관리 시스템 .. ㅡㅡ ??

조금더 쉽게 풀어서 얘기하면
여러명의 개발자 (분산 ) 가 특정 프로젝트를 자신의 컴퓨터로 협업하여 개발하면서 버전을 관리 할 수 있는 시스템이다 .

git 은 중앙 서버 컴퓨터와 여러개의 컴퓨터들이 연결되어 모두 같은 버전의 데이터베이스를 유지한다.

A 라는 컴퓨터에서 업데이트한 것을 중앙서버에 올리면 버전이 업데이트 되고 ,컴퓨터 B 는 이를 중앙 서버 컴퓨터로 부터 최신화 시키면서 버전과 파일을 모두 컴퓨터 A와 동일하게 유지할 수 있다.

이와 같은 작동하는 방식을 분산 버전 관리 시스템 이라고 한다.

git Basics

git을 사용해서 파일 버전 관리를 할때 파일은 3개의 상태중 하나의 상태가 된다.

  1. Committed
    수정 사항들이 git 에 저장이 된 상태를 committed 라고 한다.
  2. Modified
    Modified file 은 이름 그대로 수정된 file 이다. 하지만 아직
    commited 되지 않은 상태의 file 을 이야기 한다.
  3. Staged
    Staged file 은 modified file 에서 한단계 더 나아가서 곧 commit 될거라고 mark 해놓은 상태.
    modified 와 committed 의 중간 상태

git init
프로젝트를 git repository 로 만들기 위해서 사용하는 명령어 이다.
여기서 프로젝트 는 개발하고자 하는 소스코드들이 있는 디렉토리를 말한다.
git init 을 해서 git repo 로 만들어야 git 으로 버전관리가 시작된다.

git add
수정 사항들 , 즉 modified 파일들을 staged 상태로 옴기고자 할때 , 사용하는 명령어 이다. 또한 git repo 에 새로이 추가된 파일들을 staged 상태로 옴길때도 시용된다. 새로이 추가된 파일들은 "untracked" 파일 이라고 하는데 , git 에서는 이들도 수정 사항이라고 보는 것이다.

git commit
staged 된 파일들을 commit 하고자 할때 사용하는 명령어 이다.

git diff
어떤 수정 사항들이 적용됬는지 보고자 할때 사용하는 명령어 이다.
참고로 staged 된 사항들은 git diff 로 볼 수 없습니다.
modified 된 파일들만 git diff 로 볼 수 있다.

git status
commit 내역들을 보여준다.
tig 같은 tool 을 사용해서 보여주기도 한다.

git rm
원하는 파일을 git repo 에서 삭제한다.

git mv
원하는 파일을 git repo 상에서 이동 시킬때 사용한다.
주로 rename 할때 자주 사용한다.

git branch
Branch 를 생성할 때 사용된다.

git checkout
어떤 branch 에서 branch 로 이동하거나 master 로 이동을 할때 사용한다.

Branch & Merging

git 에서 branch 는 굉장히 중요한 컨셉이며 꼭 이해하는 컨셉이다.
왜냐하면 git을 사용할땐 branch 기반으로 개발하기 때문이다.

  1. Matser branch를 check out 한다.
  2. 자신만의 feature branch를 만든다.
  3. Feature branch에서 개발을 한다.
  4. 완료되면 commit 한다.
  5. Master branch에 feature branch를 merge 한다

순서

git clone 주소
git branch dev/jakdu
git checkout dev/jakdu
수정
git add .
git commit -m "test"
git push origin dev/jakdu
git checkout master

만약에 push 할때 충돌 이 생기면 ??

branch 를 바꾸지 말고 그상태로 다시 pull 을 당겨서 ,
수정을 한후에 push 를 한다.

git branch 삭제

git branch -d dev/jakdu

git 상태 확인

git status

git add 취소

git reset HEAD [FILE]

git reset 만 하면 staged 된 모든 파일을 취소한다 .

git checkout -b

[ git checkout -b dev ]

b 옵션을 줄 경우, 브랜치가 존재하지 않으면 생성하고 해당 브랜치로 switch해준다

git switch git restore

http://honeymon.io/tech/2019/08/30/git-2.23-release.html
https://ujuc.github.io/2020/07/04/git-switch-n-restore-hurt-eo-bo-gi/

git commit log

git log --stat

git diff 파일 경로

git diff 파일 경로를 하게 되면 해당 파일의 수정사항을 볼 수있다.

git commit --amend 강제

기존 branch 로 가서
git commit --amend 를 날리고 나서 ,
git push origin [branch이름]
해서 만약에 되지 않는다면

git push origin [branch이름] -f

git push -f 를 붙이게 되면 강제로 올린다는 뜻이다.

git config

local git config

git config user.name "yourname"
git config user.email "youremail"

global git config

git config --global user.name "yourname"
git config --global user.email "youremail"

local branch, remote branch 연동

로컬 branch 와 remote branch 가 각각 따로 존재한다.
이럴때 로컬 branch 와 remote branch 를 연동해주도록 한다.

git branch --set-upstream-to origin/<branch name>
profile
꾸준함이란 ... ?

0개의 댓글