DevOps/GIT 21

github#11 git tag 와 branch 차이

git tag 는 주로 버전을 릴리즈 할 때 사용한다. branch 와 가장 큰 차이점은 branch는 commit 할때마다 commit ID 가 업데이트 되지만 git tag는 특정시점의 version 을 알려주는 거라고 이해하면 되겠다. 고정된 값이라고 할수있다. #file한개를 생성하고 커밋을 한다 % vi text1.txt % git add text1.txt % git commit -m "1" [main f771c29] 1 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 a.txt create mode 100644 text1.txt #그 후 다시한번 동일한 파일을 수정하고 2번쨰 커밋을 한다. % vi text1.txt % gi..

DevOps/GIT 2020.11.25

github#10 git push and pull

git pull 여러대의 컴퓨터가 협업을 할 때 사용하는 기능인 git push 와 pull 에 대해 알아 보자. 항상 업무를 시작하기 전에 git pull 명령어를 이용해서 최신 코드를 git remote 저장소로 부터 가지고 온다. git pull [github ssh or http] 만약 pull 을 하지 않으면 원격저장소와 지역저장소의 코드 gap 이 발생하기 떄문에 작업 이후 push 하면 rejected 당할 수 있다. 따라서 pull 을 하고 원격저장소의 코드와의 코드 병합과 conflict를 해결한 후 push 를 다시 해준다. 만약에 git pull을 실수로 했다면 병합하기 이전 상태로 돌릴 수 있는데 이를 위해서는 /ORIG_HEAD 오브젝트의 나온 정보를 이용하면 된다. git fet..

DevOps/GIT 2020.11.24

github#9 git remote repository

다른사람과의 협업이나 나의 코드 백업을 위해서는 원격저장소가 remote repository 가 필요하다. 전체적인 흐름을 보면 아래와 같다. 1. local 과 remote repository 개념 이해하기 이번 실습은 remote repository 이 로컬머신에 있는 경우의 실습이다. 이제 나의 machine 에 local repository 를 만들어 보자. 지금 작업하고 있는 working directory 아래에 local repository를 위한 새로운 directory를 만든다. % mkdir local % cd .. % cd gitproject/local #first.txt라는 파일을 만들고 add하고 commit 함 % vi first.txt % git add first.txt % g..

DevOps/GIT 2020.11.21

github#8 git stash

내가 현재 여러 브랜치를 가지고 작업을 하고 있으나 내가 작업하는 브랜치 working directory에서 작업 중에 작업을 다 마치지 못했을 경우 commit을 할 수 도 없고 그렇다고 그냥 남겨 둔 채로 다른 브랜치로 체크아웃을 하면 다른 브랜치에서 작업한 내용이 다른 브랜치에 영향을 준다 git status 로 확인할 수 있다. 이럴 때 사용할 수 있는 명령어가 stash 이다. NAME git-stash - Stash the changes in a dirty working directory away SYNOPSIS git stash list [] git stash show [] [] git stash drop [-q|--quiet] [] git stash ( pop | apply ) [--ind..

DevOps/GIT 2020.11.20

github#7 3 ways merge

git merge에서 conflict 가 발생하면 쉽게 수정할 수 있는 툴이 있다. - kdiff3. Google 에 검색하면 download 가능 하니 필요한 분은 검색 해 보길 바란다. 그리고 다양한 사람과 협업을 하기 때문에 다른이와 작업을 merge하는 방법을 알아보자. 여기에는 2가지 방식이 있는데 2 way merge 3 way merge 3 way merge 방식이 더 안전하고 적은 conflict 을 발생하는 방법이라 할 수 있다. 예를 들어 A 개발자, B 개발자가 각자의 브랜치에서 동시에 작업을 수행한 후 병합하고자 한다면 아래와 같은 표로 표현 할 수 있다. 예를 들어 A file : contents 는 파일명은 A 안에 내용은 contents 라고 볼 수 있고 C file 같은 경우..

DevOps/GIT 2020.11.20

github#6 git merge conflict

merge를 할때 충돌이 일어나는 경우도 있다. 이런경우에 대한 학습을 해보도록하자. git merge 는 기본적으로 각각의 브랜치가 가지고 있는 파일이 다를 경우 merge를 함과 동시에 해당 브랜치에 있는 모든 파일이 다 병합된다. 문제는 만약 같은 파일을 다른 브랜치에서 수정했을 때 발생한다. #먼저 지금 현재 내가 가지고 있는 브랜치 리스트를 체크한다. % git branch * exp master #exp 브랜치 아래에 aaa.txt 라는 파일을 만들고 내용을 넣어서 저장한다. % vi aaa.txt #저장 후 commit % git add aaa.txt % git commit -m "exp:1" [exp 841c3f7] exp:1 1 file changed, 2 insertions(+) cre..

DevOps/GIT 2020.11.20

github#5 git HEAD file

gistory 를 실행한 후 **NOTE : 아래 링크를 클릭하면 gistory 에 관한 전반적 내용이 있습니다. [IT/DevOps] - github#3 : gistory and git rm git init을 하게 되면 볼 수 있는 파일이 ./.git/HEAD 이다. ./.git/HEAD 은 ./.git/refs/heads/master 을 가르킨다. ./.git/refs/heads/master 은 가장 최신 commit ID 를 확인할 수 있다. 여기서 git log 가 작동하는 원리를 알 수 있다. git log 는 가장 최신 commit 을 상단에 보여주게 되는데 이는 git이 내부적으로 ./.git/HEAD 라는 파일을 가지고 있고 이 파일은 ./.git/refs/heads/master 을 가르킨..

DevOps/GIT 2020.11.20

github#4 branch

version 관리와 팀 단위의 일을 할 때 필요한 개념이 Branch 이다. 1. git branch 기본 Branch 는 Master 인데 최근에는 Main 인 경우도 있다. % git branch * master % git branch javaDonbina % git branch javaDonbina * master % git checkout javaDonbina Switched to branch 'javaDonbina' % git branch * javaDonbina master 새로운 브랜치에 업로드 할 파일 4개를 로컬 repo에 옮긴후 commit 을 해본다 % ls -ltr total 40 -rw-r--r-- 1 alice staff 610 16 Nov 16:33 Tutorial03.jav..

DevOps/GIT 2020.11.17

github#3 gistory and git rm

1. Python 설치하기 www.python.org/downloads/release/python-390/ Python Release Python 3.9.0 The official home of the Python Programming Language www.python.org 2. gistory Mac 설치하기 파이썬 설치를 마치고 나서 아래 명령어로 git story 설치 해줌 sudo pip3 install gistory % sudo pip3 install gistory WARNING: The directory '/Users/alice/Library/Caches/pip' or its parent directory is not owned or is not writable by the current u..

DevOps/GIT 2020.11.16

github #2 github reset

다른 버전의 commit 으로 돌아가고 싶을때 쓰는 명령어는 reset 과 revert 가 있다. 이 작업은 꼭 백업을 만들어서 하기를 추천한다. 미연의 사고를 방지하기 위해서 .. Third Commit 과 Second commit 을 지우고 First Commit을 최신버전으로 하고 싶다. git reset [지정하고 싶은 최신버전 commit ID] --hard 결과를 보다시피 Third Commit 과 Second commit 이 지워진 것을 확인할 수 있다. **NOTE : 절대 한번 공유된 자원들은 reset을 하지 않는다. 이미 원격 저장소에 올라간 파일들을 말한다. 반드시 본인의 로컬에서만 사용하기 바란다. git revert [돌아가고 싶은 commit ID] 보다 시피 에러가 발생했다...

DevOps/GIT 2020.11.16