github 19

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#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

github #1 github init, log, diff, add, status, commit

1. github MAC 설치 처음 homebrew 를 이용해서 github을 다운로드 한다. 그 후 git 명령어 중 하나를 쳤는데 발생한 에러. stackoverflow를 뒤져서 해결방법을 찾음 git 설치 완료 ! 2. git init 내 로컬 머신에 Repository 하나를 만들고 그 후에 git init 을 설정. .git 파일은 버전 컨트롤에 있어서 중요한 파일이다. git init [디렉토리 이름] 은 git 저장소를 만드는 것이라 할 수 있다. 3. git status and git add 로컬에 있던 파일들을 새로만든 깃헙 프로젝트 디렉토리에 넣고 난 후에 git 상태 git add 는 스테이지위에 파일 혹은 디렉토리를 올려주는 것 stage : commit 대기 상태의 파일들이 있는 ..

DevOps/GIT 2020.11.15