기본 명령어

  •  cd : 경로 이동
  •  mkdir <디렉토리 이름> : <디렉터리 이름>의 비어있는 디렉터리(폴더)를 생성
  •  pwd : 현재 경로를 출력
  •  ls : 현재 위치의 폴더를 출력
  •  ls -al : 숨김 폴더도 출력 
  •  ~ : 홈 디렉터리 (기본 명령어 경로)
  •  touch <파일명> : <파일명>을 가진 비어있는 파일 생성
  •  rm <파일명> : <파일명>을 가진 (폴더가 아닌) 파일 삭제
  •  vi <파일명> : <파일명>을 vi 편집기로 편집
  • a or i : 입력모드 전환
  • esc : 한 칸(줄) 띄우고 입력모드 종료
  • :wq : 입력내용 저장 후 vi 편집기 종료
  •  cat <파일명> : <파일명>에 적힌 내용을 출력
  • (참고) 입력모드를 빠져나온 뒤 u : undo(변경사항 취소)
  • set nonu : vi 입력창 숫자 숨기기
  • set nu : vi 입력창 숫자 보이기

 

 

 

 

사용자 설정

 (Windows, git bash 기준)

 $ git config –global user.name “영어 이름”

 $ git config –global user.email “영어 이메일”

 

 

 

 

 

깃 명령어

 

git clone

git clone <URL> : 원격저장소(깃허브)에 내용이 복사됨

 

 

 

 

git branch

git branch : 브랜치 목록이 출력

git branch <브랜치명> : <브랜치명>의 브랜치가 생성

git branch -d <브랜치명> : <브랜치명>을 삭제

 

 

 

 

기타 깃 명령어

git init : 로컬 저장소 만들기

git status : 작업 디렉터리 상태 확인

git remote add origin <주소> : 깃 연동하기

git remote -v : 깃 연동 확인

git remote remove origin : 연동된 깃을 삭제

git rm –cached <파일명> : <파일명>을 삭제

git checkout <브랜치> : 브랜치로 전환git switch <브랜치> : 브랜치로 전환

 

 

 

 

git add

git add <파일명> : <파일명>을 스테이지에 추가

git add . : 현재 경로에 있는 파일 모두 스테이지에 추가

git restore --staged <파일명> : <파일명>을 스테이지에서 내리기

 

 

 

 

git commit

git commit : 커밋하기

    제목과 본문 사이의 빈 줄(enter 띄어쓰기), 본문은 생략 가능

git commit -m “제목” : 커밋 내용 없이 제목만 설정

git commit -am : 한번이라도 변경사항을 추적해본 파일

 

 

 

 

git log

git log : 깃 버전을 보여줌
git log --patch( git log -p ) : 각 커밋의 diff 결과를 보여줌. 나가기는 q

git log --oneline : 깃 버전을 한 줄로 표현

git log --graph : 깃 버전이 그래프로 표현

 

 

 

 

git tag

git tag 태그명 : 바로 전에 커밋한 파일에 태그가 붙음
git tag 태그명 커밋해시(or 짧은 커밋해시) : 지정한 커밋해시에 태그가 붙음
git tag : 태그 목록 보기
git tag --list '조회' ( git tag -l  '조회' ) : 태그 목록에서 태그를 조회

git tag --delete 태그명( git tag -d 태그명 ) : 태그 삭제하기

 

 

 

 

git diff (변경사항)

git diff : 지금까지 변경사항(작업디렉터리)과 최신커밋의 차이를 보여줌
git diff --staged(git diff --cached ) : 스테이지와 최신커밋을 비교
git diff A(old)커밋해시 B(new)커밋해시 : B는 A와 무엇이 다른가? *순서가 중요

 

 

 

 

git 되돌리기

 

 

 

git revert 취소할_커밋해시 : 새 branch
git reset 되돌아갈_커밋해시 : mixed 리셋
git reset --soft 되돌아갈_커밋해시 : soft 리셋
git reset --hard 되돌아갈_커밋해시 : hard 리셋

 

 

 

 

git stash

git stash -m "제목" : 임시저장
git stash list : 임시저장 목록을 보여줌
    가장 최신 저장은 {0}번이 갖는다
git stash apply stash@{} : 임시저장 불러오기 
git stash drop stash@{} : 임시저장 삭제

 

 

 

 

git pull

Sync fork : (깃허브) 포크로 복사해온 원본을 최신화

git pull : 원격 저장소 최신 파일을 내려받아 merge

 

 

 

 

충돌 해결하기

파일 직접 수정해야 함. 다시 커밋해야함.

git merge <브랜치> : 체크아웃은 반드시 병합하려는 대상에 두어야 함. ex) main으로 병합시 checkout이 main
git rebase <브랜치> : 특정 시점으로 브랜치를 재배치

 

 

 

 

git fetch

git fetch : 일단 갖고만 와서 내용을 확인한다.

 

 

 

 

 

git push

git push -u origin main : 다음에 푸시, 패치, 풀 할 때 git push/git fetch/git pull만 입력해도 됨

git push origin 브랜치명: 브랜치를 푸시

 

 

'Git' 카테고리의 다른 글

[Git] 소스트리 풀 리퀘스트  (0) 2023.03.26
[Git] 소스트리 패치와 풀  (0) 2023.03.26
[Git] 소스트리 클론과 푸시  (0) 2023.03.26
[Git] 소스트리와 깃허브 연동  (0) 2023.03.26
[Git] 소스트리 브랜치 재배치  (0) 2023.03.26

풀 리퀘스트

  • 원격 저장소에 내 변경사항을 풀 하도록 요청
  • 원격 저장소를 가진 사람이 받아들일지 말지를 정함

  


 

 

 

풀 리퀘스트 보내는 방법

    1. (타인의) 저장소를 본인 계정으로 포크하기

    2. 포크한 저장소를 클론하기

    3. 브랜치 생성하여 작업하기

    4. 작업한 브랜치 푸시하기

    5. 풀 리퀘스트 보내기

 

 

1. 포크하여 본인 계정으로 복사해 옵니다.

 

타인의 계정에 push 할 수 없으므로 Fork로 내 계정으로 가져오기

 

2. 복사본을 클론합니다.

 

 

3. 브랜치를 생성하여 작업합니다.

 

 

4. 작업한 내용을 푸시합니다.

 

 

5. 깃허브에 접속하여 풀 리퀘스트 보내기

 

 

 


 

 

풀 리퀘스트를 받아 병합(merge)하기

 

1. 풀 리퀘스트  =>  Merge pull request를 클릭합니다.

 

 

2. confirm merge를 클릭합니다.

 

 

3. 아이콘이 Merged로 바뀌었습니다. 저장소에서 병합된 파일을 확인할 수 있습니다.

 

'Git' 카테고리의 다른 글

[Git] 깃 명령어  (0) 2023.04.16
[Git] 소스트리 패치와 풀  (0) 2023.03.26
[Git] 소스트리 클론과 푸시  (0) 2023.03.26
[Git] 소스트리와 깃허브 연동  (0) 2023.03.26
[Git] 소스트리 브랜치 재배치  (0) 2023.03.26

원격 저장소와 네가지 상호작용

  • 클론(clone) : 깃허브의 파일을 내 컴퓨터로 복제합니다.
  • 푸시(push) : 내 파일을 깃허브에 올리기라고 생각하시면 됩니다.
  • 패치(fetch) : 원격 저장소를 일단 가져만 옵니다. (병합X)
  • 풀(pull) : 원격 저장소를 가져와서 로컬 저장소와 합칩니다.

 

3. 패치(Fetch)

    내 로컬환경과 원격 저장소가 동일하지 않습니다. 내가 작업하는 환경에 영향을 미치지 않고 파일만 가져오고 싶다면 패치를 사용합니다.

 

깃허브에서 파일을 수정해봅시다.

 

내용을 추가하고 commit changes에 커밋 제목과 필요에따라 커밋 내용도 추가합니다.

변경이 끝나면 Commit changes를 클릭합니다.

 

 

이제 소스트리로 돌아갑니다.

패치  =>  확인을 눌러 파일을 가져옵니다.

 

 

origin(가져온 파일)과 main이 나눠져 있는 것을 확인할 수 있습니다.

작업이 끝나고 병합하고 싶다면 'origin에서 가져와 병합하기'를 사용합니다.

 


 

4. 풀(Pull)

    변경사항을 바로 내 로컬 환경에 적용합니다.

 

패치와 마찬가지로 깃허브에서 내용을 변경하고 풀 해보겠습니다.

이번에는 origin과 main이 한 파일에 적용된 것을 확인할 수 있습니다.

'Git' 카테고리의 다른 글

[Git] 깃 명령어  (0) 2023.04.16
[Git] 소스트리 풀 리퀘스트  (0) 2023.03.26
[Git] 소스트리 클론과 푸시  (0) 2023.03.26
[Git] 소스트리와 깃허브 연동  (0) 2023.03.26
[Git] 소스트리 브랜치 재배치  (0) 2023.03.26

원격 저장소와 네가지 상호작용

  • 클론(clone) : 깃허브의 파일을 내 컴퓨터로 복제합니다.
  • 푸시(push) : 내 파일을 깃허브에 올리기라고 생각하시면 됩니다.
  • 패치(fetch) : 원격 저장소를 일단 가져만 옵니다.
  • 풀(pull) : 원격 저장소를 가져와서 로컬 저장소와 합칩니다.

 

1. 클론(clone)

원격 저장소 파일을 로컬로 복제합니다.

복제하고 싶은 깃허브의 주소를 가져오세요.

Code  =>  SSH의 주소를 복사합니다.

 

 

소스트리로 돌아가서 Clone을 클릭합니다.

아래에 복사한 주소를 붙여넣고 탐색을 클릭합니다.

클론 버튼이 활성화 되면 클론 버튼을 누르면 복사가 끝납니다.

 

 

복사한 파일의 .git 폴더까지 같이 복제됩니다.

 

 

main 브랜치와 master 브랜치는 같습니다.

    +깃허브에서 만들어진 master 브랜치의 기본 이름을 main으로 변경했다. 

origin : 원격 저장소의 경로를 지칭하는 별칭 같은 겁니다.

origin/HEAD : origin의 HEAD

origin/main : origin의 main

 

 


 

 

2.푸시(push)

원격 저장소에 밀어넣기습니다.

    1. 원격 저장소를 클론하고 커밋하기

 

클론하면 원격 저장소(깃허브)와 연동됩니다.

 

 

Push 버튼을 눌러 커밋한 내용을 푸시합니다.

 

 

 

    2. 작업한 파일을 새 원격 저장소에 푸시하기

 

커밋을 이미 한 파일들이 존재하며, 이것을 새 저장소에 푸시하고 싶을 때 사용합니다.

먼저 저장소의 주소를 복사합니다.

 

원격 이름을 설정하고 URL에 저장소 주소를 붙여넣습니다.

1번처럼 Push버튼으로 커밋한 내용을 넣어주면 깃허브에서 내 파일을 확인할 수 있습니다.

 

'Git' 카테고리의 다른 글

[Git] 소스트리 풀 리퀘스트  (0) 2023.03.26
[Git] 소스트리 패치와 풀  (0) 2023.03.26
[Git] 소스트리와 깃허브 연동  (0) 2023.03.26
[Git] 소스트리 브랜치 재배치  (0) 2023.03.26
[Git] 소스트리 충돌  (0) 2023.03.26

ssh로 연결할 것이며, 깃허브와 연동하기 위해 git bash를 사용했습니다.

개인정보 보호를 위해 비어있는 곳이 있습니다.

ssh-keygen

위의 코드를 붙여넣기 합니다.

 

 

엔터를 세번 치면 다음과 같은 화면이 나옵니다.

 

 

빨간 박스 부분을 복사하시고 cat을 입력 후 붙여넣기 하세요

cat (/c/ 빨간 박스부분 붙여넣기 /.pub)

다 하셨으면 git bash를 끄지마시고 깃허브로 들어옵니다.

설정  =>  SSH and GPG keys를 클릭합니다.

 

 

New SSH key를 클릭합니다.

 

 

Title은 아무거나 사용하셔도 됩니다.

Key는 아까 git bash에서 cat을 입력하시고 난 후 받은 ssh-rsa ~엄청 긴 코드~를 여기에 붙여넣기 합니다.

Add SSH key를 눌러 등록합니다.

 

 

도구  =>  옵션 창을 띄웁니다.

SSH 클라이언트를 OpenSSH로 바꾸면 SSH 키가 자동으로 들어갑니다.

 

 

 Remote  => 계정 추가  =>  화면에 맞게 설정을 바꾸시고 OAurth 토큰 새로고침을 눌러주세요.

 

 

새로고침을 누르면 새 페이지가 열릴텐데 가장 하단에 있는 Authorize atlassian 을 클릭합니다.

 

 

아래와 같이 인증 성공이 뜬다면 확인 버튼을 클릭합니다.

 

 

새로고침을 누르면 깃허브에 올려놓은 저장소를 확인할 수 있습니다.

 

'Git' 카테고리의 다른 글

[Git] 소스트리 패치와 풀  (0) 2023.03.26
[Git] 소스트리 클론과 푸시  (0) 2023.03.26
[Git] 소스트리 브랜치 재배치  (0) 2023.03.26
[Git] 소스트리 충돌  (0) 2023.03.26
[Git] 소스트리 브랜치 병합  (1) 2023.03.26

master 파일과 branch파일의 순서를 재배치 할 때 사용합니다.

 

현재 파일은 마스터 파일이 2개, 이후 branch 브랜치를 생성해 파일을 2개, 다시 마스터 파일에 1개를 커밋한 상태입니다.

이상태에서 브랜치를 마스터 main3 파일 뒤로 재배치하고 싶습니다.

즉, 마스터 파일이 3개 위치한 뒤  =>  branch 브랜치 파일이 위치하게 하고 싶습니다.

 

 

옮길 브랜치(저의 경우 branch)에 Head가 위치하도록 설정합니다.

마스터 main3 파일에서 우클릭, 재배치를 눌러줍니다.

 

 

순서가 변경된 것을 확인할 수 있습니다.

 

 

'Git' 카테고리의 다른 글

[Git] 소스트리 클론과 푸시  (0) 2023.03.26
[Git] 소스트리와 깃허브 연동  (0) 2023.03.26
[Git] 소스트리 충돌  (0) 2023.03.26
[Git] 소스트리 브랜치 병합  (1) 2023.03.26
[Git] 소스트리 브랜치 만들기  (0) 2023.03.26

충돌은?
    병합하려는 브랜치가 같은 파일을 다르게 수정한 상황에서 발생합니다.

 

 

충돌 상황을 해결하는 방법은

    1.어떤 내용을 선별하여 병합할지 판단합니다.
    2.다시 커밋하면 됩니다.

 

 


우선 충돌 상황을 만들어보겠습니다.

브랜치를 생성한 뒤 main1 파일의 내용을 수정하여 커밋 합니다.

 

 

이후 헤더를 옮겨 마스터 브랜치의 내용도 수정하고 커밋해줍니다.

 

 

master와 branch모두 각각 수정된 main이라는 파일을 커밋했습니다.

이상태로 병합을 하면 충돌 상황이 발생합니다.

 

 


 

 

이제 충돌 상황을 해결해봅시다.

 

<<<<<<<HEAD

rewrite main1

======== 

여기까지가 master 갖고 있는 내용입니다.

 

이후

========

rewrite branch

>>>>>>>>> branch

 

 

 

여기까지가 branch가 갖고 있는 내용이죠.

 

 

오렌지색 삼각형 아이콘은 충돌되었다는 것을 나타냅니다.

 

오른쪽 마우스 클릭,

충돌해결  =>  '내것'을 이용해 해결 : master로 병합, '저장소'것을 사용하여 해결 : 'branch로 병합을 의미합니다.

저는 master 파일로 병합하였습니다.

 

 

작업 디렉터리에 들어가 확인하시면 master 브랜치에서 작성한 내용이 들어있는걸 확인할 수 있습니다.

 

 

이제 파일 상태로 들어가 커밋 버튼을 눌러줍니다.

 

 

커밋이 완료된 것을 확인할 수 있습니다.

 

 

'Git' 카테고리의 다른 글

[Git] 소스트리와 깃허브 연동  (0) 2023.03.26
[Git] 소스트리 브랜치 재배치  (0) 2023.03.26
[Git] 소스트리 브랜치 병합  (1) 2023.03.26
[Git] 소스트리 브랜치 만들기  (0) 2023.03.26
[Git] 브랜치란?  (0) 2023.03.26

브랜치 병합(merge)에는 두가지 예시가 있습니다.

 

 

1. 빨리감기 병합

마스터 브랜치를 변경하지 않고, 브랜치로만 작업할 후 병합하게되면 빨리감기 하듯이 내용이 업데이트 됩니다.

 

branch  =>  master로 병합하려고 합니다.

병합 기준(master)이 되는 곳에 헤드가 위치하도록 합니다.

branch에서 오른쪽 버튼 클릭 후 '현재 브랜치로 branch 병합'을 클릭합니다.

 

 

 

작업 디렉터리에도 병합된 파일 목록을 확인 할 수 있습니다.

 

 

 

 

2. 새로운 커밋에 병합

마스터 브랜치도 업그레이드를 하고 브랜치도 작업한 상황에 병합할 시 새로운 커밋에 병합됩니다.

 

마찬가지로 branch  =>  master로 병합합니다.

병합하는 방법은 1번과 같습니다.

 

master 파일이 2개일때 branch를 생성. branch 파일 2개 커밋, main 파일 1개 커밋한 상황

 

'Git' 카테고리의 다른 글

[Git] 소스트리 브랜치 재배치  (0) 2023.03.26
[Git] 소스트리 충돌  (0) 2023.03.26
[Git] 소스트리 브랜치 만들기  (0) 2023.03.26
[Git] 브랜치란?  (0) 2023.03.26
[Git] 소스트리 임시저장하기  (0) 2023.03.26

브랜치를 클릭하여 새로운 브랜치를 생성합니다.

새 브렌치 체크아웃 : 브렌치 생성과 동시에 새 브렌치로 작업환경이 옮겨감

 

현재 작업환경을 헤더(o) 표시로 확인할 수 있습니다.

 

브랜치를 생성하고 또하나의 파일을 커밋해보았습니다.

 

헤더가 브랜치에 있을 때는 작업 디렉터리에 파일이 세 개가 보여집니다.

 

마스터를 더블 클릭하여 헤더를 옮기면 작업 디렉터리에도 두개의 파일만 보여집니다.

'Git' 카테고리의 다른 글

[Git] 소스트리 충돌  (0) 2023.03.26
[Git] 소스트리 브랜치 병합  (1) 2023.03.26
[Git] 브랜치란?  (0) 2023.03.26
[Git] 소스트리 임시저장하기  (0) 2023.03.26
[Git] 소스트리 버전 되돌리기  (0) 2023.03.26

브랜치(branch)

    영어 뜻 그대로 나뭇가지의 형상을 갖습니다.

    버전의 분기점을 만들어 나뭇가지처럼 여러 흐름을 만들고 이것을 관리하는 방법을 브랜치라고 부릅니다.

 

 

브랜치를 사용 이유
    브랜치가 없다면, ¹큰 틀을 순서대로 받아 한사람씩 기능을 구현하거나 ²개인이 작업한 여러 작업물들을 하나하나 직접 이어붙여야 합니다.

    브랜치를 사용하는 방법은 간단합니다. 브랜치를 나누고 각자의 브랜치에서 작업하다가 브랜치를 합치면 됩니다. 이렇게 되면 겹치는 부분만 다듬으면 되는 겁니다.

 


브랜치의 이름
    최초의 브랜치의 브랜치는 master(main) 라는 이름을 갖습니다. 브랜치는 분기하며 새로운 이름을 갖는데, 이름을 지을 때는 (로그인 기능이면 login과 같이) 목적을 위한 이름을 부여하는 것을 추천합니다.

 

 

 


Head

  • 현재 작업 중인 브랜치의 커밋을 가르킨다.
  • 일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가르킨다.
  • 내가 작업 중인 공간을 가르킨다.

 

체크아웃

  • 특정 브랜치에서 작업할 수 있도록 작업 환경을 바꾸는 것을 말한다.
  • HEAD의 위치를 다른 브랜치의 최신 커밋으로 옮기는 것을 말한다.

'Git' 카테고리의 다른 글

[Git] 소스트리 브랜치 병합  (1) 2023.03.26
[Git] 소스트리 브랜치 만들기  (0) 2023.03.26
[Git] 소스트리 임시저장하기  (0) 2023.03.26
[Git] 소스트리 버전 되돌리기  (0) 2023.03.26
[Git] 소스트리 버전 관리  (0) 2023.03.25

+ Recent posts