git -a 옵션

Github 2017. 6. 7. 12:50
  • git commit -a 명령은 마지막 커밋에 존재하는 모든 파일들에 대하여 git add 명령을 적용한 후 git commit 명령을 적용하는 것과 다르지 않다.
  • git commit files 명령을 실행하면 마지막 커밋을 기반으로 files의 변경된 내용을 포함하는 새로운 커밋을 하나 만든다. 이 때 files은 Stage 영역에 추가된다.
  • git checkout HEAD -- files 명령은 files 을 마지막 커밋으로부터 Stage 영역과 현재 작업 디렉토리에 동시에 복사한다.



https://marklodato.github.io/visual-git-guide/index-ko.html

Posted by 이상욱1
,

https://backlogtool.com/git-guide/kr/stepup/stepup7_2.html

Posted by 이상욱1
,

http://codecooking.tistory.com/11



출처: http://codecooking.tistory.com/11 [코드요리]  출처: http://codecooking.tistory.com/11 [코드요리]


http://www.inanzzz.com/index.php/post/dx7e/git-commit-error-insufficient-permission-for-adding-an-object-to-repository-database-git-objects

'Github' 카테고리의 다른 글

git -a 옵션  (0) 2017.06.07
최근 깃 커밋 날리기  (0) 2017.06.07
깃 clone 시 이상한파일만 클론 될때  (0) 2016.11.21
git log 브랜치 네임에 gui 로 보는 command  (0) 2016.11.14
.git 폴더 내용  (0) 2016.11.08
Posted by 이상욱1
,

1.현재 브랜치가 마스터가 아닐수도 있다  현재 서비스 하고있는 브랜치 확인 한후 그브랜치를 클론해주자

그렇지 않다면 그냥 clone 진행

2. 첫 커밋 푸쉬가 안되있는걸 수도있다 . 클론은 푸쉬한이력을 가지고오니깐 한번 git status 로 확인뒤  한번도 푸쉬이력이없다면  푸쉬를 해준뒤 clone해주자 

http://ohgyun.com/505

Posted by 이상욱1
,

git log --graph --all --source --decorate

Posted by 이상욱1
,

.git 폴더 내용

Github 2016. 11. 8. 16:01

http://gitready.com/advanced/2009/03/23/whats-inside-your-git-directory.html

Posted by 이상욱1
,

  1. 패치 파일의 쓰임
  2.  패치(patch) 파일은 두 파일들간의 차이들을 출력해 주는 프로그램인 diff에 의해
    생성된 파일을 의미한다. 주로 쓰이는 때는 어떤 프로그램에서 기능향상이나
    문제점을 해결하기 위해 소스파일들을 고치고 나서 고친 부분에 대한 정보만을
    기록해 놓고 싶을때 쓰인다. 고친 소스파일 전체보다도 고친 부분에 대한 정보만을
    갖고 있으면 저장해야 되는 양이 적고, 어떤 부분을 고쳤는지 파악하기도 쉽다는 
    장점이 있다. (특히 비공식적인 패치 적용시 프로그램이 버젼업이 되어 소스가
    변경되었을때 유용하다.) 패치파일의 확장자는 사용자 임의이긴 하지만 알아보기 
    쉽도록 주로 .diff 또는 .patch를 사용한다.
     그럼 먼저 패치 파일을 만들기 위해 diff 프로그램의 사용법을 익혀보자.



옵션

설명

-u

통일된 출력 포맷을 사용한다디렉토리를 비교할 때두 개의 디렉토리 중 두 번째 디렉토리에만 파일이 존재한다면첫 번째 디렉토리에는 사실 파일이 없지만 있는 것처럼 처리한다.

-N

비교하는 디렉토리에 파일이 하나의 디렉토리에만 있다면모두 있는 것처럼 처리를 하지만 사실은 다른 한 디렉토리에는 파일이 없다.

-r

두 디렉토리를 비교할 때모든 서브 디렉토리는 재귀적으로 비교한다.

http://coffeenix.net/doc/misc/patch.html

http://www.dreamy.pe.kr/zbxe/CodeClip/157754

'Github' 카테고리의 다른 글

git log 브랜치 네임에 gui 로 보는 command  (0) 2016.11.14
.git 폴더 내용  (0) 2016.11.08
git ignore 하기  (0) 2016.07.25
merge랑 rebase 차이 병합 하는 경우 케이스  (0) 2016.01.15
통합 브랜치 , 토픽 브랜치  (0) 2016.01.15
Posted by 이상욱1
,

git ignore 하기

Github 2016. 7. 25. 13:41

http://egloos.zum.com/color106/v/2860070

Posted by 이상욱1
,

브랜치 통합하기

작업이 완료된 토픽 브랜치는 최종적으로 통합 브랜치에 병합됩니다. 브랜치 통합에는merge 를 사용하는 방법과 'rebase'를 사용하는 방법의 2가지 종류가 있습니다. 어느 쪽을 사용하느냐에 따라 통합 후의 브랜치의 이력이 크게 달라집니다.

merge

merge 를 사용하면, 여러 개의 브랜치를 하나로 모을 수 있습니다.

예를 들어, 아래 그림과 같이 'master' 브랜치에서 분기하는 'bugfix'라는 브랜치가 있다고 가정해 봅시다.

브랜치

이 'bugfix' 브랜치를 'master' 브랜치로 병합할 때, 'master' 브랜치의 상태가 이전부터 변경되어 있지만 않으면 매우 쉽게 병합할 수 있습니다. 'bugfix' 브랜치의 이력은 'master' 브랜치의 이력을 모두 포함하고 있기 때문에, 'master' 브랜치는 단순히 이동하기만 해도 'bugfix' 브랜치의 내용을 적용할 수 있습니다. 또한 이 같은 병합은 'fast-forward(빨리 감기) 병합'이라고 부릅니다.

fast-forward(빨리감기) 병합

하지만 'bugfix' 브랜치를 분기한 이후에 'master' 브랜치에 여러 가지 변경 사항이 적용되는 경우도 있습니다. 이 경우에는 'master' 브랜치 내의 변경 내용과 'bugfix' 브랜치 내의 변경 내용을 하나로 통합할 필요가 있습니다.

브랜치 분기 후 'master'에 변경 사항이 생긴 경우

따라서 양쪽의 변경을 가져온 'merge commit(병합 커밋)'을 실행하게 됩니다. 병합 완료 후, 통합 브랜치인 'master' 브랜치로 통합된 이력이 아래 그림과 같이 생기게 됩니다.

양쪽의 변경을 적용한 'merge commit(병합 커밋)'

Note

병합 실행 시에 'fast-forward 병합'이 가능한 경우라도 'non fast-forward 병합' 옵션을 지정하여 아래 그림과 같이 만들어 낼 수도 있습니다.

non fast-forward 병합

'non fast-forward 병합'을 실행하면, 브랜치가 그대로 남기 때문에 그 브랜치로 실행한 작업 확인 및 브랜치 관리 면에서 더 유용할 수 있습니다.

rebase

위와 마찬가지로, 'master' 브랜치에서 분기하는 'bugfix' 브랜치가 있다고 가정합니다.

브랜치

이제 rebase 를 이용해 어떻게 브랜치를 통합할 수 있는지 알아볼 차례 입니다. 아래 그림과 같이 'non fast-forward 병합' 방식으로 진행되는 시나리오를 만들어 봅시다.

rebase를 사용하여 브랜치 통합

우선 'bugfix' 브랜치를 'master' 브랜치에 rebase 하면, 'bugfix' 브랜치의 이력이 'master' 브랜치 뒤로 이동하게 됩니다. 그 때문에 그림과 같이 이력이 하나의 줄기로 이어지게 됩니다.

이 때 이동하는 커밋 X와 Y 내에 포함되는 내용이 'master'의 커밋된 버전들과 충돌하는 부분이 생길 수 있습니다. 그 때는 각각의 커밋에서 발생한 충돌 내용을 수정할 필요가 있습니다.

rebase를 사용하여 브랜치 통합

'rebase'만 하면 아래 그림에서와 같이, 'master'의 위치는 그대로 유지됩니다. 'master' 브랜치의 위치를 변경하기 위해서는 'master' 브랜치에서 'bugfix' 브랜치를 fast-foward(빨리감기) 병합 하면 됩니다.

rebase를 사용하여 브랜치 통합

Note

merge 와 rebase 는 통합 브랜치에 토픽 브랜치를 통합하고자 하는 목적은 같으나, 그 특징은 약간 다릅니다.

  • merge
    변경 내용의 이력이 모두 그대로 남아 있기 때문에 이력이 복잡해짐.
  • rebase
    이력은 단순해지지만, 원래의 커밋 이력이 변경됨. 정확한 이력을 남겨야 할 필요가 있을 경우에는 사용하면 안됨.

merge 와 rebase 는 팀 운용 방침에 따라 구별해 쓸 수 있습니다. 
예를 들어 이력을 하나로 모두 모아서 처리하도록 운용한다고 치면 아래와 같이 구별해 사용할 수 있습니다.

  • 토픽 브랜치에 통합 브랜치의 최신 코드를 적용할 경우에는 rebase 를 사용,
  • 통합 브랜치에 토픽 브랜치를 불러올 경우에는 우선 rebase 를 한 후 merge

https://backlogtool.com/git-guide/kr/stepup/stepup1_4.html

'Github' 카테고리의 다른 글

깃헙 diff 파일 만드는법  (0) 2016.08.22
git ignore 하기  (0) 2016.07.25
통합 브랜치 , 토픽 브랜치  (0) 2016.01.15
깃허브 wiki 문법 마크다운 언어 기반  (0) 2015.10.08
깃허브 쉽게 이용 하는 환경 구성  (0) 2015.07.22
Posted by 이상욱1
,

https://backlogtool.com/git-guide/kr/stepup/stepup1_2.html



브랜치 (Branch)

브랜치 만들기

Git 에서는 작업에 따라 자유롭게 브랜치를 만들 수 있습니다. 그러나 이것을 효과적으로 관리하려면, 먼저 함께 작업할 팀원들과 어떠한 방식으로 브랜치를 만들고 통합할 것인지 미리 정해두는 것이 좋습니다. 예를 들어 새로운 브랜치를 만들 때에 브랜치 이름은 어떤 규칙으로 지을 것인지 또는 어떤 상황에서 브랜치를 만들 지, 어느 시점에 통합할 것인지 등등 규칙은 정하기 나름입니다.

자, 그럼 이제부터 우리가 만들 수 있는 브랜치에는 어떤 종류가 있는지 살펴 보도록 하겠습니다.

통합 브랜치(Integration Branch)

통합 브랜치란 언제든지 배포할 수 있는 버전을 만들 수 있어야 하는 브랜치 입니다. 그렇기 때문에 늘 안정적인 상태를 유지하는 것이 중요합니다. 여기서 '안정적인 상태'란 현재 작업 중인 소스코드가 모바일에서 동작하는 어플리케이션을 개발하기 위한 것이라면, '그 어플리케이션의 모든 기능이 정상적으로 동작하는 상태'를 의미합니다.

만약 이 어플리케이션에 어떤 문제가 발견되어 그 문제(버그)를 수정한다던지 새로운 기능을 추가해야 한다던지 해야할 때, 바로 '토픽 브랜치(Topic branch)'를 만들 수 있습니다. 처음에는 보통 통합 브랜치에서 토픽 브랜치를 만들어 냅니다.

일반적으로 저장소를 처음 만들었을 때에 생기는 'master' 브랜치를 통합 브랜치로 사용합니다.

토픽 브랜치(Topic Branch)

토픽 브랜치란, 기능 추가나 버그 수정과 같은 단위 작업을 위한 브랜치 입니다. 여러 개의 작업을 동시에 진행할 때에는, 그 수만큼 토픽 브랜치를 생성할 수 있습니다.

토픽 브랜치는 보통 통합 브랜치로부터 만들어 내며, 토픽 브랜치에서 특정 작업이 완료되면 다시 통합 브랜치에 병합하는 방식으로 진행됩니다. 이러한 토픽 브랜치는 '피처 브랜치(Feature branch)' 라고 부르기도 합니다.

토픽 브랜치 이미지

https://backlogtool.com/git-guide/kr/stepup/stepup1_2.html

Posted by 이상욱1
,