gbsb.tistory.com/9?category=622870

 

Git 설치와 사용법(SourceTree)

Git을 이용하려면 두가지 방법이 있다. SourceTree라는 Git GUI 툴을 이용한 Git Git Bash를 이용한 Git SourceTree를 이용하면 GUI 툴이기에 접근하기에는 편하지만, 리눅스는 지원이 안되고 좀 더 디테일한

gbsb.tistory.com

Git을 이용하려면 두가지 방법이 있다.

  • SourceTree라는 Git GUI 툴을 이용한 Git
  • Git Bash를 이용한 Git

SourceTree를 이용하면 GUI 툴이기에 접근하기에는 편하지만, 리눅스는 지원이 안되고 좀 더 디테일한 명령어를 다룰 수 없다. 따라서 보기엔 불편하지만 Git Bash를 이용하는 것이 낫다고 생각한다. (그리고 얘가 좀 더 간지난다)

지금부터 첫번째 방법에 대해서 알아보자.

1. Git & SourceTree 설치

2. 테스트할 저장공간 만들기

Git과 SourceTree를 연동하여 소스를 관리하려면, 테스트할 저장공간이 필요하다. 내 경우는 C:\gbsb\project1 폴더에 index.html이라는 파일을 만들었다. 

[index.html]

<html>

    <head>

        <title>Git</title>

    </head> 

    <body>

        <ul>

            <li>Hello Git!</li>

        </ul>

    </body>

</html>

 

3. 새 저장소 만들기(init 명령어)

이제 SourceTree을 열어보자. 지금부터 SourceTree에서 Git에게 추적당할 로컬 저장소를 만들 것이다.

아래는 저장소가 만들어진 모습이다.

노란색으로 표시한 부분은 Git과 이것저것 연동하는 부분이고, 빨간색으로 표시한 부분은 C:\gbsb\project1 저장소의 안에 있는 파일들을 보여준다.

Staging Area는 Git에게 추적되는 공간이고, Working Directory는 Git에게 추적되지 않는 공간이다. 현재 워킹 디렉토리에는 아직 추적되지 않은 index.html 이 보인다.

이 아이콘은 새로운 파일이 등록되었을 경우다. (아직 Git이 추적하기 전)

이 아이콘은 새로운 파일은 최초로 커밋하면 Git이 추적을 시작한다. (즉 저장소에 저장된다)

아직까지 Git은 이 디렉토리 안의 파일의 내용이 변경되었는지 추적하지 않는다.

4. 버전 만들기(commit 명령어)

처음으로 커밋을 시도한다면, 계정을 입력하라는 알림이 뜰 것이다. [Tools] > [Options] > Dafault user infomation에서 계정을 추가한 뒤, 아래의 단계를 실행하여 커밋해보자.

이제 커밋이 완료되었다. 왼쪽엔 master브랜치가 생성되었고, 오른쪽엔 커밋할 때 작성한 이력, 날짜 등이 보여진다.

이번에는 소스파일을 변경한 후 커밋해보자. 나는 index.html 파일에 한 줄을 추가하고 저장하였다.

[index.html]

<html>

    <head>

        <title>Git</title>

    </head> 

    <body>

        <ul>

            <li>Hello Git!</li>

            <li>Add Source~~</li>

        </ul>

    </body>

</html>

 

그 다음에 소스트리 목록을 보면 'Uncommitted changes', 즉 커밋되지 않은 변화가 추가되었다. (안보일 경우 F5 새로고침) 이번에도 아까와 같은 방식으로 커밋을 하면 된다.

커밋을 하니, 저장소로 등록한 C:\gbsb\project1 내의 파일들이 Git에게 추적되어 보여지고 있다.

5. 되돌리기(discard, reset, revert 명령어)

작성한 파일을 다시 되돌릴 수 있는 3개의 방법이 있다. (파일을 되돌려보기 위해 index.html 파일에 이것저것 내용을 변경하려고 한다.)

1) Discard (커밋하기 전, 되돌리기)

Staging Area 목록에서 되돌릴 파일을 선택한 뒤 [Discard] 버튼을 클릭하면 창이 뜬다. [Discard Changes] 버튼을 클릭하면 최종 커밋된 버전으로 돌아간다.

2) Reset (커밋해버린 후, 버전을 제거하고 되돌리기)

목록에서 되돌아가고 싶은 버전을 선택하고 마우스 우클릭한 뒤, 'Reset current branch to this commit'을 선택하면 아래의 창이 뜬다.

  • Soft 모드
  • Mixed 모드 : 선택한 버전 이후의 모든 버전이 사라지지만 Working Directory에 남겨진다. 또한 작업중이던 Working Directory의 상태는 유지된다. (소스에 중요한 정보가 들어가 있을 때 사용)
  • Hard 모드 : 선택한 버전 이후의 모든 버전이 삭제된다. Working Directory와 Staging Area 공간에 있는 파일도 모두 삭제된다.

3) Revert (커밋해버린 후, 버전을 제거하지 않고 되돌리기)

버전을 제거하지 않고, 새로운 커밋을 생성하여 이전 상태로 되돌린다. 목록에서 되돌아가고 싶은 버전을 선택하고 마우스 우클릭한 뒤 'Reverse Commit'을 선택한다. 주의할 점은 위에서부터 아래로, 즉 역순으로 차례대로 하나씩 Reverse Commit 해야 충돌이 발생하지 않는다.

6. 브랜치(branch 명령어)

브랜치는 보통 원본과 실험용 프로젝트를 분리해서 만들고자 할 때 사용한다. (예를 들어, 신규기능이나 불확실한 코드를 실험용에서 개발하고자 할 때)

1) 브랜치 만들기

소스트리에서 [Branch] 버튼을 클릭한 뒤 아래의 단계를 실행한다.

이제 브랜치는 총 2개가 존재하게 된다. (master 브랜치, 실험용 브랜치) 지금부터 브랜치 별로 따로 코드를 짜는 것이 가능하다.

2) 브랜치 합치기(merge 명령어)

신규기능 테스트가 끝났다고 가정했을 때, 실험용 브랜치를 master 브랜치로 합쳐보자. 실험용 브랜치를 우클릭한 뒤 'Merge 실험용 into current branch'를 클릭한다. 이를 'master브랜치로 체크아웃 했다'고 말할 수 있다. 브랜치가 잘 합쳐졌는지 확인해보고 싶다면, master브랜치의 소스에 실험용에서 만든 코드가 보이는지 찾아보면 된다.

3) 브랜치간 충돌 해결하기

두개의 브랜치에서 서로 같은 위치의 코드를 변경하고 커밋했을 때 충돌이 발생한다. 아래가 충돌이 난 예시이다. master 브랜치 내의 파일의 3번째 줄을 커밋하고, 실험용 브랜치 내의 파일의 3번째 줄을 커밋한 뒤 master 브랜치로 병합(merge)하자 충돌이 발생한 모습이다.

해결방법은 일단 충돌이 난 부분을 지운뒤, 해당 파일을 우클릭한 뒤 'Resolve Conflicts' > 'Mark Resolved'를 선택한다.
충돌이 해결되었으면 다시 커밋을 하면 된다.

충돌을 줄이기 위해서는, 브랜치를 주기적으로 master의 내용과 동기화하자.

7. GitHub 원격저장소에 연결하기

로컬저장소(C:\gbsb\project1)와 원격저장소를 연결해서 원격저장소에 백업할 수도 있다. 대표적인 원격저장소는 GitHub나 Bitbucket 등이 있다.

1) 원격저장소 만들기

GitHub 페이지에서 'New repository'하여 원격저장소를 만든다.

2) 로컬저장소와 원격저장소를 서로 연결하기

소스트리 메뉴에서 [Repository] > [Add Remote] 를 클릭하면 창이 뜬다. 거기서 [Add]를 클릭하면 아래의 창이 뜬다. 

URL / Path 입력란에 GitHub에 명시된 원격저장소 주소를 붙여넣고 [Ok] 버튼을 누르자. 이제 로컬저장소와 원격저장소가 연결되었다. 하지만 아직 동기화 되지 않은 상태다. 소스트리에서 [Push]를 클릭하고 아래의 단계를 실행한다.

3) 원격저장소로 업로드 하기

방금전 실행한 [Push] 기능이 로컬저장소에서 원격저장소로 업로드하는 방법이다.

8. 협업하기

Git과 GitHub를 통해 사람들끼리 협업해야 할 때가 있다. (예를 들어, 새로 입사한 신입이 원격저장소에서 로컬컴퓨터로 프로젝트를 가져와야할 경우) 

소스트리의 [File] 메뉴에서 [Clone/New]를 선택한다. 아래와 같은 순서로 실행하면 원격 저장소가 복제된다.

하나의 원격저장소를 두고 각자 작업을 진행해야 할 경우가 있다. 작업 시작하기 전에 Pull을 먼저 실행해야 한다. 작업 순서는 pull -> work -> commit -> pull -> push 순으로 진행하자.

 

'Tools > GitHub' 카테고리의 다른 글

Git 설치와 사용법(Git Bash)  (0) 2021.01.15
[GitHub] Merge의 종류  (0) 2020.10.26
[GitHub] Merge 와 Rebase의 차이  (0) 2020.10.26
[GitHub] 개념정리  (0) 2020.10.14
[GitHub] 명령어 모음  (0) 2020.10.04

gbsb.tistory.com/10

 

Git 설치와 사용법(Git Bash)

Git을 이용하려면 두가지 방법이 있다. SourceTree라는 Git GUI 툴을 이용한 Git Git Bash를 이용한 Git SourceTree를 이용하면 GUI 툴이기에 접근하기에는 편하지만, 리눅스는 지원이 안되고 좀 더 디테일한

gbsb.tistory.com

Git을 이용하려면 두가지 방법이 있다.

  • SourceTree라는 Git GUI 툴을 이용한 Git
  • Git Bash를 이용한 Git

SourceTree를 이용하면 GUI 툴이기에 접근하기에는 편하지만, 리눅스는 지원이 안되고 좀 더 디테일한 명령어를 다룰 수 없다. 따라서 보기엔 불편하지만 Git Bash를 이용하는 것이 낫다고 생각한다. (그리고 얘가 좀 더 간지난다)

지금부터 두번째 방법에 대해서 알아보자.

기본적인 명령어

  • 화면 초기화 : Ctrl + L
  • 한 행의 처음과 끝 : Ctrl + A, Ctrl + E
  • 목록 보기 : ls 또는 dir
  • 파일의 내용 보기 : cat
  • 특정 문자를 검색 : grep
  • 디렉터리로 이동 : cd
  • 디렉터리 생성 : mkdir
  • 파일 삭제 : rm
  • 파일 생성 : touch

git config (최초 1회 실행)

// git commit에 사용될 username

git config --global user.name "your_name"

 

// git commit에 사용될 email

git config --global user.email "your_email@example.com"

 

// 설정한 내용을 확인할 수 있다.

git config --list

 

 

git init

현재 디렉토리를 로컬저장소로 설정한다.

// 로컬저장소로 설정할 프로젝트 위치로 이동한다.

cd C:/dev/workspace/eom2017

 

// 로컬저장소로 설정한다.

// (master) 브랜치로 보이면 성공한 것이다.

git init

 

// 만약 init을 취소하려면 아래의 명령어를 입력한다.

rm -r .git

 

git status

로컬저장소의 현재 상태를 보여준다.

git add

파일을 준비영역(Staging Area)으로 옮긴다. (GitHub와 연동하려면 git remote로 원격 저장소와 연결해야 함)

// a.html 파일만 추가

git add a.html

 

// 워킹 디렉터리 내 모든 파일을 추가

git add .

 

// 명령 프롬프트에서 상호작용하면서 추가 (나갈땐 q를 입력)

git add -i

 

// 진행중인 파일일 경우, Staging Area에서 워킹 디렉터리로 옮겨온다. 

$git rm --cached a.html

$git rm ---cached .

 

git commit

준비영역(Staging Area)의 파일을 로컬저장소에 저장한다.

// 에디터가 출력되고, 에디터에서 커밋 메시지 입력 후 저장하면 커밋됨

git commit

 

// 간단한 커밋 메시지를 입력후 커밋

git commit -"커밋 메시지"

 

// Staging Area에 들어간 파일에 대해서만 (워킹 디렉터리는 적용 X)

git commit --"커밋 메시지"

 

git log

로컬저장소의 커밋 이력을 조회한다.

// 커밋 이력 상세조회

git log 

 

// 커밋 이력중 커밋ID, 타이틀 메시지만 조회

git log --oneline

 

// 모든 브랜치 커밋 이력 조회

git log --oneline --decorate --graph --all

 

// 특정 파일의 변경 커밋 조회

git log -- a.html

 

git remote

로컬저장소와 원격저장소를 연결한다.

// Github 원격저장소와 연결한다.

git remote add origin [자신의 Github 원격저장소 주소]

 

// 연결된 원격저장소 확인한다.

git remote -v

 

 

git push

원격저장소에 저장한다.

// 원격저장소에 저장한다.

git push -u origin master

 

// 에러 - ! [rejected] master -> master (fetch first)

// 이미 변경된 파일이 원격저장소에 있을경우 발생

git pull origin master 

 

// 에러 - ! [rejected] master -> master (non-fast-forward)

git push origin +master

 

 

아래부터는 좀 더 심화된 내용이다.

git diff

워킹 디렉터리와 다른 커밋을 비교한다.

1) 현재 브랜치의 마지막 커밋과의 차이점 비교
$git diff

2) 특정 커밋과의 차이점 비교
$git diff [Commit ID]

3) 특정 커밋과 특정 파일의 차이점 비교
$git diff [Commit ID] -- [파일 경로]

git branch

브랜치를 생성, 수정, 삭제 등을 한다.

1) 브랜치 보기
$git branch

2) 브랜치 생성
$git branch [브랜치명]

3) 브랜치 수정
$git branch -m [브랜치명] [바꿀이름]

4) 브랜치 삭제
$git branch -d [브랜치명]

git checkout

워킹 디렉터리의 소스를 특정 커밋 또는 특정 브랜치로 변경한다.

1) 특정 브랜치로 워킹 디렉터리 변경
$git checkout [브랜치명]

2) 특정 커밋으로 워킹 디렉터리 변경
$git checkout [Commit ID]

 

3) 특정 파일을 해당 브랜치 또는 커밋 상태로 변경 (원복)
$git checkout [돌아갈 Commit ID] -- [파일 경로]
*충돌 방지를 위해 브랜치명을 확인하고, 파일 추가 및 수정한 뒤 커밋해야 한다.

4) 브랜치 생성 및 체크아웃을 같이 할 경우
$git checkout -b develop

git merge

다른 두개의 브랜치 소스를 병합한다.

$git checkout master
$git merge develop

*같은 파일의 같은 위치의 내용이 변경된 경우 충돌이 발생한다.

'Tools > GitHub' 카테고리의 다른 글

Git 설치와 사용법(SourceTree)  (0) 2021.01.15
[GitHub] Merge의 종류  (0) 2020.10.26
[GitHub] Merge 와 Rebase의 차이  (0) 2020.10.26
[GitHub] 개념정리  (0) 2020.10.14
[GitHub] 명령어 모음  (0) 2020.10.04

#VLOOKUP(검색값, 검색 범위, 반환 할 열번호, TRUE(일부일치) or FALSE(완전일치))

 

 

#GREP

Ctrl + G로 실행한다

 

지정한 폴더에서 지정한 키워드에 해당하는 조건을 검색해서 추출하는 기능이다

SQL에서 테이블명만 추출할 때 유용하다

 

검색조건은

1.해당 행

2.해당 부분

3.해당 하지 않는 행

 

3가지가 존재한다

 

 

폴더 전체를 검색하므로  새로운 폴더를 생성후 해당폴더 안에 검색할 파일을 모아서

사용한다

'Tools > SAKURA Editor' 카테고리의 다른 글

[SAKURA Editor] 키매크로  (0) 2020.10.06

SVN은 깃허브와 달리

로컬PC > 리모트 저장소  2단계로 구성되어 있다

깃허브는 로컬PC > 로컬 저장소 > 리모트 저장소

 

#초기 설정

1.폴더 생성

2.생성한 폴더 안에서 오른쪽 마우스>SVN체크 아웃

3.리포지토리URL 입력(리모트 저장소 경로)

4.체크 아웃 경로 지정(생성한 폴더 경로)

5.완료

 

#리모트 저장소로 부터 파일을 갱신할 때

1.SVN폴더로부터 실행한 파일을 전부 닫음(닫지 않으면 액세스 문제로 실행된 파일만 갱신되지 않음)
2.해당폴더에서 오른쪽마우스>SVN갱신

3.완료

 

#파일을 커밋할 때

1.파일 내용 변경

2.해당폴더에서 오른쪽마우스>SVN커밋

3.완료

+ Recent posts