일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- sqs
- DAG
- celery
- Operator
- airflow
- Concept
- ci/cd
- dynamic task mapping
- kinesis
- Scheduling
- TaskFlow
- github actions
- dagrun
- git book
- XCOM
- RDS
- Task
- testing
- Git
- credentials
- lambda
- authoring
- executor
- Data Firehose
- SecretsManager
- pipeline
- S3
- boto3
- AWS
- mysql
- Today
- Total
목록Git (10)
CS

Rebase란 rebase는 merge와 마찬가지로 브랜치를 합치는 방법입니다. 위 상황에서, git checkout master git merge experiment master에서 experiment를 merge하면 위처럼 되는 반면, git checkout experiment git rebase master # 브랜치 변경 없이 수행 git rebase master experiment experiment에서 master를 rebase하면 위처럼 됩니다. merge는 두 브랜치를 공통 조상을 사용하여 합쳐 새로운 커밋을 생성합니다. rebase는 현재 브랜치와 공통 조상의 차이점(diff)을 대상 브랜치에 적용하여 새로운 커밋(들)을 생성합니다. 두 작업이 완료된 후 생성되는 커밋은 동일하지만, 그림..
리모트 브랜치 리모트 브랜치에 데이터 전송 리모트 브랜치에서 데이터 받기 로컬 브랜치 -> 리모트 브랜치 추적 리모트 브랜치 제거 리모트 브랜치에 대하여 clone이나 fetch로 리모트 저장소의 데이터를 가져오면, 해당 리모트 저장소에 있는 브랜치를 추적하는(트래킹) 브랜치를 만듭니다. 이를 리모트 트래킹 브랜치라고 합니다. 이는 /로 명명됩니다. 리모트 트래킹 브랜치는 fetch 등으로 리모트 저장소와 연결될 때마다 갱신되나 엄연히 로컬에 존재하므로, 리모트 저장소가 변경된다고 하더라도 즉시 리모트 트래킹 브랜치가 변경되는 건 아닙니다. 또한 리모트 트래킹 브랜치는 직접 제어할 수 없습니다. 리모트 트래킹 브랜치는 실제 리모트 브랜치의 대리로서, 실제 리모트 저장소의 브랜치 → 리모트 트래킹 브랜치 ..

브랜치에 대하여 브랜치 생성 브랜치 변경 브랜치 Merge Merge 충돌 브랜치 정보 확인 브랜치 제거 브랜치에 대하여 브랜치는 커밋 사이를 이동할 수 있도록 만든 포인터라고 볼 수 있습니다. 위 그림에서 'v1.0' 브랜치와 'master' 브랜치 모두 f30ab 커밋을 가리키고 있습니다. HEAD는 현재 보고 있는 브랜치를 가리키는 것으로, 그림에서 HEAD는 master 브랜치를 가리키고 있으므로 현재 master 브랜치에서 작업 중인 상황임을 알 수 있습니다. 동일하게 포인터 역할인 태그와 비교하면, 브랜치는 커밋을 할 경우 이를 따라간다는 차이점이 있습니다. 즉 브랜치는 그 이름처럼 가지를 트는 것과 비슷합니다. 프로젝트의 여러 부분을 작업 공간을 분리하여 작업하거나, 여러 사람이 서로에게 직..
Git의 태그는 특정 커밋에 꼬리표를 다는 것입니다. 보통 버전을 표시하는 데(v1.0 같이) 쓰입니다. 태그를 달면 커밋을 입력할 때 체크섬 대신 태그를 사용할 수 있습니다. 태그 목록 출력하기: tag git tag 현재 존재하는 태그를 알파벳 순서로 출력합니다. 와일드카드를 사용하여 태그를 검색할 수 있는데, 이때는 -l(또는 --list)옵션을 사용해야 합니다. # "v1.5"로 시작하는 태그 목록 출력 git tag -l "v1.5*" 태그 종류 Git의 태그는 Annotated와 Lightweighted 두 가지로 구분됩니다. Annotated: 말 그대로 주석을 함께 달 수 있는 태그입니다. 태그 작성자 정보, 태그 작성 날짜, 태그 메시지를 기록할 수 있습니다. Annotated 태그를 생..
리모트 저장소는 기본적으로 로컬이 아닌 외부에 있는(원격) 저장소를 말합니다. 따라서 이 명령어들은 기본적으로 인터넷과 연결된 환경에서만 가능합니다. 여러 명이 접근할 수 있는 리모트 저장소를 어딘가에 두고, 이를 clone하여 로컬에서 작업을 한 후, 완성된 것은 다시 리모트 저장소로 보내고(push), 작업에 필요한 것은 리모트 저장소에서 가져오는(pull)하는 게 Git으로 협업을 하는 방식입니다. 이러한 리모트 저장소를 사용하는 방법에 대해 알아보겠습니다. remote: 리모트 저장소 목록 remote add: 리모트 저장소 추가 remote rename: 리모트 저장소 이름 변경 remote remove: 리모트 저장소 등록 제거 fetch: 리모트 저장소에서 데이터 가져오기 pull: 리모트 ..
이전 커밋에 덧붙이기 및 파일 변경 되돌리기 이전 커밋에 다른 변경을 추가하거나, add를 취소하거나, 파일 수정을 되돌릴 수 있습니다. 다만 이런 방법을 사용하면 되돌릴 수 없으며 기록에 남지 않으므로 필요할 때만 쓰는 게 좋을 것 같습니다. 이전 커밋에 덧붙이기: amend git commit --amend 커밋을 했는데, 새로운 커밋 없이 파일을 수정하거나 추가하고 싶은 경우, 추가 작업을 마친 뒤 모두 stage한 후 amend 옵션을 추가하여 커밋할 수 있습니다. 이는 직전에 한 커밋을 취소한 후 명령어를 실행하는 시점에서 커밋을 다시 합니다. 따라서 직전 커밋은 일어나지 않은 게 됩니다. 직전 커밋을 없었던 것으로 만드므로 다른 사람이 한 커밋에 사용하지 않는 게 좋습니다. ○ -m '': 다..
커밋 기록 확인하기 git log 명령을 실행하면 해당 저장소의 커밋 기록을 가장 최근의 것부터 출력합니다. 기본적으로 커밋 체크섬, 저자 정보(이름과 이메일), 작성 날짜, 커밋 메시지를 보여줍니다. 옵션 ○ -p 또는 --patch: 각 커밋마다 바뀐 점(diff)도 출력합니다. 어떤 작업을 하였는지 한 눈에 볼 수 있습니다. ○ -: 해당 개수만큼만 기록을 보여줍니다. 2를 입력하면 최신 것과 그 다음 커밋만 출력합니다. ○ --stat: 각 커밋마다 통계(요약) 정보도 출력합니다. 수정한 파일 이름과 각 파일별 수정한 줄 수, 커밋별 전체 수정 파일 개수와 수정 줄 수를 보여줍니다. ○ --pretty=: 출력 형식을 정합니다. oneline: 한 줄로 표현합니다. 체크섬과 커밋 메시지만 포함합니..

Git 저장소 생성 파일 상태 새로운 파일 추가 파일 수정 파일 무시 커밋 파일 삭제 파일 이름 변경 Git 저장소 생성 Git을 사용하려면 일단 저장소가 있어야 합니다. Git 저장소는 로컬에서 새로 만들거나 기존 저장소를 복제(clone)해서 만들 수 있습니다. 로컬에서 저장소 만들기 Git으로 버전 관리하고 싶은 디렉토리로 이동한 후, 저장소 생성 명령어를 입력합니다. # 현재 디렉토리에 .git 디렉토리 생성 git init .git 디렉토리는 Git 저장소에 관한 파일들이 있는 장소입니다. 이제 해당 디렉토리에서 Git을 사용할 수 있지만, 아직 해당 디렉토리의 어떤 파일도 Git에 의해 관리되고 있지 않습니다. Git에게 파일을 관리하게 만들려면 Git에 파일을 추가하고 커밋해야 합니다. # ..