<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Q_E.log</title>
        <link>https://velog.io/</link>
        <description>기록하는 습관</description>
        <lastBuildDate>Fri, 31 Dec 2021 04:28:46 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. Q_E.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/nam_q_e" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[GitHub 연동/활용하기]]></title>
            <link>https://velog.io/@nam_q_e/GitHub-%EC%97%B0%EB%8F%99%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@nam_q_e/GitHub-%EC%97%B0%EB%8F%99%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 31 Dec 2021 04:28:46 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-사용할-개발도구intellij-설치하기-">*<em>📌 사용할 개발도구(IntelliJ) 설치하기 *</em></h2>
<hr>
<p>+
<a href="https://www.jetbrains.com/ko-kr/idea/download/">🔔 IntelliJ 설치 사이트 바로가기</a>
<a href="https://www.jetbrains.com/ko-kr/idea/download/">https://www.jetbrains.com/ko-kr/idea/download/</a> 링크를 통해 Community 프로그램을 설치하고 설치 폴더 경로를 지정한다.</p>
<p>+
기본값 기본옵션으로 아무선택 없이 install 해준다.</p>
<p>+
<a href="https://tomcat.apache.org/">🔔 Tomcat 설치 사이트 바로가기</a>
<a href="https://tomcat.apache.org/">https://tomcat.apache.org/</a> 링크를 통해 설치 프로그램을 설치하고 설치 폴더 경로를 지정하여 압축을 해제한다. 설치 과정중 http1.1/ 포트번호 설정할때 충돌이 나지않는 번호(이번엔 8000)로 설정해준다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/a73e8da6-3711-4783-b3f1-f6eba45e6064/image.png" alt=""></p>
<p><img src="https://images.velog.io/images/nam_q_e/post/7a67fe8c-c402-421f-906d-69f152e7de14/image.png" alt=""></p>
<p>+
해당 폴더에 있는 하위 bin폴더에서 startup.bat 파일을 실행하면 <a href="http://localhost:%ED%8F%AC%ED%8A%B8%EB%B2%88%ED%98%B8(8000)%EC%97%90">http://localhost:포트번호(8000)에</a> 접속하여 위 그림과 같이 출력되면 정상적으로 톰캣이 설치, 실행되고 있다는 것을 의미한다.</p>
<p>&lt;참고&gt;
[유튜브 JavaCampus_IntelliJ IDEA 다운로드 및 설치]
(<a href="https://www.youtube.com/watch?v=hZF4a8sMFbI">https://www.youtube.com/watch?v=hZF4a8sMFbI</a>)</p>
<br>


<h2 id="📌-개발도구intellij와-git-연동하여-push하기-">*<em>📌 개발도구(intellij)와 Git 연동하여 Push하기 *</em></h2>
<hr>
<h3 id="1-github에서-새-레포지토리를-생성-후-연동">1. Github에서 새 레포지토리를 생성 후, 연동</h3>
<ul>
<li>새로운 프로젝트를 하나 생성한다. java파일로 하나 생성하고 프로젝트명과 파일명을 지정해준다. 또한 Github에 새로운 레포지토리를 생성하여 준비한다.</li>
</ul>
<p>+
상단바에서 File &gt; Settings &gt; Plugins 에서 installed 탭으로 이동하여 Git과 Github가 설치되었는지 확인한다.</p>
<p>+
<img src="https://images.velog.io/images/nam_q_e/post/35b220e8-2414-4251-9317-d5ec6a7fd03a/image.png" alt="">
상단바에서 File &gt; Settings &gt; Version Control &gt; Git 
Path to Git executable 에서 git 실행파일을 선택하고 Test를 클릭하여 실행되는지 확인한다.</p>
<p>+
상단바에서 File &gt; Settings &gt; Version Control &gt; Github ➕ 버튼을 클릭하여 GitHub 계정을 입력하여 로그인한다. 연결된 계정을 클릭하고 ✔ 를 클릭하면 해당 계정이 디폴트로 설정된다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/f1f08589-1d71-45c6-b17d-454eb12558e3/image.png" alt=""></p>
<p><img src="https://images.velog.io/images/nam_q_e/post/51c90322-8136-4ccd-b364-f39012979634/image.png" alt=""></p>
<p>+
위를 실행하고 Remote Repository 등록해준다.
상단바에서 VCS &gt; Enable Version Control Integration Git 선택 후 OK, 해당 프로젝트 파일이 Git의 관리에 들어간것을 확인한다. </p>
<p><img src="https://images.velog.io/images/nam_q_e/post/5369e351-913a-45bb-98d4-76aca04844a7/image.png" alt=""></p>
<p>+
해당 프로젝트에 우측 키 &gt; Git &gt; Manage Remotes + 버튼을 클릭하여 이름은 origin URL은  생성해놓은 gitbut Repository 주소(<a href="https://github.com/Q-E-GitHub/github-intellij-prc.git)%EB%A5%BC">https://github.com/Q-E-GitHub/github-intellij-prc.git)를</a> 넣는다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/8cf9d214-075c-43ec-a827-93753722c07b/image.png" alt=""></p>
<p>+
해당 프로젝트에 우측 키 &gt; Git &gt; Add 하고 상단 바에서 Git &gt; Commit을 진행해준다.
빨간색으로 표시된 파일들이 초록색으로 변경된다.</p>
<blockquote>
<p><strong>&lt; 파일 상태별 색상 &gt;</strong>
<font color='red'>빨간색</font> - add 되지 않은 파일
<font color='green'>초록색</font>  - add 된 파일
<font color='blue'>파란색</font> - 수정된 파일
하얀색 - commit 된 파일
<font color='grey'>회색</font> - 삭제된 파일</p>
</blockquote>
<p>+
커밋해줄 파일들을 선택하고 커밋 메세지를 작성한 후 Push까지 가능한 Commit and Push를 클릭한다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/4afca7fa-6575-4c38-a227-772e872c4fa0/image.png" alt=""></p>
<p><img src="https://images.velog.io/images/nam_q_e/post/8d172882-7af8-469d-9193-fd1fcb13697c/image.png" alt=""></p>
<p>+
Push를 해주면 좌측 Commit 탭에서 Project탭으로 넘어와 파일 상태색상이 흰색인걸 확인했고 Github에 들어가면 올라간것을 볼수있다.
<img src="https://images.velog.io/images/nam_q_e/post/8064abdb-24b6-4376-a71c-0b5ef46a2294/image.png" alt=""></p>
<h3 id="2-intellij에서-새-레포지토리를-생성-후-연동">2. IntelliJ에서 새 레포지토리를 생성 후, 연동</h3>
<p>+
<strong>CTRL + SHIFT + A</strong>를 누르고 &quot;share project github&quot;를 검색하여 들어가면 Github로그인 창으로 로그인(첫시작 시)을 해주거나 상단바에서 VCS &gt; Share Project on GitHub로 로그인(첫시작 시)한다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/5ee19de4-4c9e-4ea7-a7ac-dc2827177d9e/image.png" alt=""></p>
<p>+
share를 해주면 Add및 Commit을 할수 있는 창이 자동을 뜬다. 커밋메시지를 작성하고 커밋해주면 Github에 올라간것을 볼수있다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/fba86b1a-eb1d-454a-83e0-1c09a8758efd/image.png" alt=""></p>
<p><img src="https://images.velog.io/images/nam_q_e/post/9ad5330a-7c4c-4615-928f-debd59c6373f/image.png" alt=""></p>
<p>+
이후, 새로 추가하여 Add까지 된 파일은 초록색, 수정된 파일은 초록색, Add를 못한 파일은 빨간색, 삭제한 파일은 회색, Commit된 파일은 흰색으로 확인된다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/666f72a4-de98-4dcb-abdb-0dcb831c0337/image.png" alt=""></p>
<p>+
동일하게 해당프로젝트 우클릭 &gt; Add를 한 후, 상단 바에서 Git &gt; Commit을 해주고 커밋메시지를 작성하여 Push and Commit을 해준다. Github에 올라간것을 볼수있다.
<img src="https://images.velog.io/images/nam_q_e/post/e8f37441-bc53-43bd-a86b-4413e7569b7b/image.png" alt=""></p>
<p>&lt;참고&gt;
<a href="https://blog.naver.com/mina7523/222600352800">mina7523 네이버블로그_IntelliJ와 Github 연동</a></p>
<h2 id="📌-commit-작성-규칙에-맞춰-사용하기"><strong>📌 Commit 작성 규칙에 맞춰 사용하기</strong></h2>
<hr>
<p><strong>🔍 규칙에 맞는 좋은 커밋메시지를 작성해야 하는 이유는?</strong></p>
<ol>
<li>팀원과의 소통</li>
<li>편리한 과거의 기록 추적
즉, 협업 관련하여 서로 보다 효율적이고 편리하게 해주는 기본 매너이기에 어렵더라도 지켜서 사용하는 습관을 키워야한다!
&#160;&#160;&#160;&#160;↪ &lt;사용 방법&gt; 명령어에 옵션없이 git commit을 입력하고 Vi 입력창에 아래의 규칙을 &#160;&#160;&#160;&#160;&#160;&#160;&#160;따라 커밋 메시지를 작성하면 된다.<blockquote>
<ol>
<li>커밋 유형 지정</li>
</ol>
</blockquote>
</li>
</ol>
<p><strong>FEAT :</strong> 새로운 기능에 대한 커밋
<strong>FIX : ** 버그 수정에 대한 커밋
*<em>DOCS : *</em>문서 수정에 대한 커밋
*<em>BUILD : *</em> 관련 파일 수정에 대한 커밋
*<em>STYLE : *</em> 스타일 관련 기능(코드 포맷팅, 세미콜론 누락, 코드 자체의 변경이 없는 경우)
**REFACTOR :</strong> 코드 리펙토링에 대한 커밋
<strong>TEST : *<em>테스트 코드, 리펙토링 테스트 코드 수정에 대한 커밋
*</em>CHORE :</strong> 빌드 업무 수정, 패키지 매니저 수정(ex .gitignore 수정 같은 경우)
<strong>CI :</strong> CI 관련 설정 수정에 대한 커밋</p>
<blockquote>
<ol start="2">
<li>제목과 본문을 빈 행으로 분리</li>
</ol>
</blockquote>
<p><img src="https://images.velog.io/images/nam_q_e/post/f50d2c87-c3fd-4340-bd55-0e29ddc8d30e/image.png" alt=""></p>
<blockquote>
<ol start="3">
<li>제목 행을 50자로 제한</li>
</ol>
</blockquote>
<p>  강제로 제한하는 것은 아니고 읽기 쉽고 간결하게 표현하기 위한 경험에 의한 규칙이다</p>
<blockquote>
<ol start="4">
<li>제목 행의 첫 글자는 대문자로 시작</li>
</ol>
</blockquote>
<p>readme file modification X
Readme file modification O</p>
<blockquote>
<ol start="5">
<li>제목 행 끝에 마침표를 넣지 않는다</li>
</ol>
</blockquote>
<p>제목 행의 끝에는 마침표가 필요 없다. 
50자 규칙에 따르기 위해서라도 마침표를 넣는 것은 불필요한 공간 낭비이다</p>
<p>Open the door. X
Open the door O</p>
<blockquote>
<ol start="6">
<li>제목 행에 명령문을 사용한다</li>
</ol>
</blockquote>
<p>** &quot;명령이나 설명하듯이 작성&quot;**</p>
<p>네 방을 치운다 (Clean your room)
문을 닫는다 (Close the door)
쓰레기를 갖다 버린다 (Take out the trash)</p>
<blockquote>
<ol start="7">
<li>본문은 72자마다 끊어 줄을 바꿔준다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="8">
<li>본문을 사용하여 변경 한 내용과 이유 설명(어떻게 보다는 무엇과 왜를 설명한다)</li>
</ol>
</blockquote>
<blockquote>
<ol start="9">
<li>검토자가 원래 문제가 무엇인지 이해한다고 가정하지 말고 확실하게 설명 추가</li>
</ol>
</blockquote>
<blockquote>
<ol start="10">
<li>자신의 코드가 직관적으로 바로 파악 할 수 있다고 생각하지 말자</li>
</ol>
</blockquote>
<blockquote>
<ol start="11">
<li>팀에서 정한 Commit 규칙을 따르자</li>
</ol>
</blockquote>
<p><img src="https://images.velog.io/images/nam_q_e/post/9ded05cb-d5c0-437a-ba58-8da05a152d00/image.png" alt=""></p>
<p>&lt;참고&gt;
[richone tistory_깃 커밋 메시지 작성법]
(<a href="https://richone.tistory.com/26">https://richone.tistory.com/26</a>)
[xtring-dev tistory_깃 커밋 메시지 작성법]
(<a href="https://xtring-dev.tistory.com/entry/Git-%EA%B7%9C%EC%B9%99%EC%A0%81%EC%9D%B8-Commit-%EB%A9%94%EC%84%B8%EC%A7%80%EB%A1%9C-%EA%B0%9C%EB%B0%9C%ED%8C%80-%ED%98%91%EC%97%85%ED%95%98%EA%B8%B0-%F0%9F%91%BE">https://xtring-dev.tistory.com/entry/Git-%EA%B7%9C%EC%B9%99%EC%A0%81%EC%9D%B8-Commit-%EB%A9%94%EC%84%B8%EC%A7%80%EB%A1%9C-%EA%B0%9C%EB%B0%9C%ED%8C%80-%ED%98%91%EC%97%85%ED%95%98%EA%B8%B0-%F0%9F%91%BE</a>)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[GitHub 기본 사용기]]></title>
            <link>https://velog.io/@nam_q_e/GitHub-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@nam_q_e/GitHub-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 23 Dec 2021 02:42:38 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-github-가입"><strong>📌 Github 가입</strong></h2>
<hr>
<p>+
<a href="https://github.com/">🔔 GitHub가입 사이트 바로가기</a>
<a href="https://github.com/">https://github.com/</a> 링크를 통해 Sign up 진행을 한다.</p>
<p>+
이메일과 비밀번호, 사용자이름을 기입하면 해당 이메일로 인증번호 확인 후, 인증한다.</p>
<p>+
Pro버전이 아닌 무료판(Continue for free)로 진행해준다.</p>
<br>

<h2 id="📌-github-기본-기능-push-사용하기"><strong>📌 Github 기본 기능 Push 사용하기</strong></h2>
<hr>
<p>+
소스코드로 폴더와 파일을 지정하여 add 및 commit을 완료한 채로, Github 사이트에 들어가 Create repository를 해준다.</p>
<h3 id="1-gitbash로-진행">1. GitBash로 진행</h3>
<p>+
첫번째 명령어는 이 주소의 github레포지토리를 origin이란 이름의 원격 저장소로 설정하겠다는 뜻이다. origin은 자동으로 등록되는 저장소 기본명(branch의 master와 같음).</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160; 세번째 명령어는 폴더의 현 브랜치에 커밋된 내용들을 origin라는 이름의 원격저장소에 
&#160;&#160;&#160;&#160;&#160;&#160;&#160; main이라는 이름의 브랜치를 올리겠다는 뜻이다.
<img src="https://images.velog.io/images/nam_q_e/post/fc235faf-7d8f-43b1-92ef-6e7e0ccecb3c/image.png" alt=""></p>
<ul>
<li>중간 본인확인 과정으로 GitHub 인증을 하고 내 Github를 새로고침하면 로컬로 푸시한 파일들이 올라와있다. 파일의 내용뿐 아니라 커밋 메시지를 눌러 해당커밋에서 어떤 변화가 있었는지 확인 가능하다. 명령창에서 <strong>git remote</strong> 명령어로 원격 저장소 목록을 확인해본다.
<img src="https://images.velog.io/images/nam_q_e/post/65e40955-5775-4288-b783-6f72616c76a2/image.png" alt=""></li>
</ul>
<p>+
새로운 파일을 생성한 경우, 파일 저장 및 add/commit 까지 해주고 <strong>git push</strong> origin master 명령을 해주면 새로고침한 Github에 새로운 파일이 올라온것을 확인할수 있다.</p>
<p>+
새로운 브랜치일 경우, 파일 저장 및 add/commit 까지 해주고 <strong>git push</strong> origin new-branch(새로운 브랜치명) 명령을 해주면 새로고침한 Github에 2개의 브랜치가 올라온것을 확인할수 있다.</p>
<br>

<h3 id="2-소스트리로-진행">2. 소스트리로 진행</h3>
<p>+
소스트리의 상단 메뉴바에서 저장소 &gt;원격 저장소 추가를 클릭한다. 원격 이름은 origin(기본) url/경로는 <a href="https://github.com/Q-E-GitHub/github-prc.git">https://github.com/Q-E-GitHub/github-prc.git</a> 사용자명을 기재한다.</p>
<p>+
상단에서 Push를 클릭하고 로컬의 master 브랜치를 원격 origin의 master 브랜치로 올리는걸 설정하고 확인한다. 중간 본인확인 과정으로 패스워드를 입력하여 인증한다. 
<img src="https://images.velog.io/images/nam_q_e/post/d4021e7c-2073-4285-abaa-eba000f36e97/image.png" alt=""></p>
<p><img src="https://images.velog.io/images/nam_q_e/post/2d545943-2ead-4f85-ba59-e25c7140b896/image.png" alt=""></p>
<p>+
새로운 파일을 생성한 경우, 파일 저장 및 add/commit 까지 해주고 Push를 해주면 새로고침한 Github에 새로운 파일이 올라온것을 확인할수 있다.</p>
<br>

<h2 id="📌-github-기본-기능-clonefetchpull-사용하기"><strong>📌 Github 기본 기능 Clone/Fetch/Pull 사용하기</strong></h2>
<hr>
<p>+
이해를 돕기위해, 원격 저장소 origin에 담긴 기존 작업중인 폴더 github-prc 그대로 home-com 폴더(집 컴퓨터)에는 명령어로 진행하고, office-com 폴더(회사 컴퓨터)에는 소스트리로 clone 해본다.</p>
<p>+
Github 사이트에서 우측에 있는 clone 주소를 복사해준다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/a1dbf032-e9b7-4b9e-b89e-5da06794d0db/image.png" alt=""></p>
<h3 id="1-gitbash로-진행-1">1. GitBash로 진행</h3>
<p>+
기존 작업 중인 폴더(github-prc)가 아닌 그것을 불러올 home-com 폴더를 열어준다.</p>
<p>+
<strong>git clone</strong> <a href="https://github.com/Q-E-GitHub/github-prc.git">https://github.com/Q-E-GitHub/github-prc.git</a> 명령어를 입력하면 올려놓았던 레포지토리부터 프로젝트의 내역들이 그대로 복사된다. 단, clone명령어 사용 이후, 폴더아래 레포지토리 명의 폴더가 생겨 cd 명령어로 하위 폴더(github-prc)로 한번 들어가줘야 작업이 가능해진다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/03c92614-20f1-49c6-84e6-43206c2e7f73/image.png" alt=""></p>
<p>+
clone 후, home-com 폴더에서 작업 중 수정한 것을 github에 올리게되면 본래 github-prc에서 일일이 확인하기가 번거로우니 <strong>git fetch</strong> 명령어를 사용한다.</p>
<p>+
git fetch 명령 후, git status를 하면 커밋이 뒤쳐져있다. 즉, Github에서 다운 받아야 할 사항이 있다고 나온다.</p>
<p>+
<strong>git pull</strong> origin master (원격 저장소명, 원격 저장소에서 받아오고자 하는 브랜명) 명령어를 해주면 변경된 사항과 커밋 내역까지도 동기화된다.</p>
<br>

<h3 id="2-소스트리로-진행-1">2. 소스트리로 진행</h3>
<p>+
상단 ➕로 새로운 탭을 생성하고 Clone 버튼을 클릭한다.
Github에서 복사해놓은 원격 저장소 url을 입력해주고 프로젝트 폴더가 위치할 폴더 경로를 탐색해주면 클론이 완료된다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/96103c1a-9d49-4cff-8259-26cba9d2b658/image.png" alt=""></p>
<p><img src="https://images.velog.io/images/nam_q_e/post/e1c2547e-0509-4bb0-b3d7-3333cd298275/image.png" alt=""></p>
<p>+
clone 후, github-prc 폴더에서 작업 중 수정한 것을 github에 올리게되면 본래 github-prc에서 일일이 확인하기가 번거로우니 상단 패치 버튼을 누른다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/b732e0da-84ca-4258-88f8-f05cca67b63f/image.png" alt=""></p>
<p>+
체크 그대로 패치를 진행하면 master 브랜치에 받아올 항목이 있다고 확인 가능하다.
<img src="https://images.velog.io/images/nam_q_e/post/8a765aed-3045-44db-9e34-432bdaa4ea7b/image.png" alt=""></p>
<p>+
확인한 항목을 상단 Pull 버튼을 눌러 끌어오면  동기화가 가능해진다.
<img src="https://images.velog.io/images/nam_q_e/post/c5a3f540-611f-4965-bf3f-f286eadc7241/image.png" alt=""></p>
<p>** 협업 할때에는 pull이 존재하든 안하든 한번씩 작업을 업데이트 해주는 것이 좋고, 내가 pull을 안한 상태로 push를 할수 없기때문에 꾸준히 확인해야 한다.**</p>
<br>

<h4 id="🔍보안적으로-중요한-내용이나-대중에게-공개하지않을-파일이-있을경우">🔍보안적으로 중요한 내용이나 대중에게 공개하지않을 파일이 있을경우</h4>
<p>.gitignore 파일을 만들면 Git의 관리에서 제외시킬 파일이나 폴더, 기타 요소(빌드하면 만들어지거나 컴퓨터에서의 IDE세팅 등)들을 입력해주면 된다. 즉, .gitignore 파일 생성 후, 그 파일에 secret-animal 이라는 이름의 파일을 적어주면 status나 push를 해도 확인이 불가하다. </p>
<br>

<h2 id="📌-github-기본-기능-fork-사용하기"><strong>📌 Github 기본 기능 Fork 사용하기</strong></h2>
<hr>
<p>+
먼저 <strong>Fork</strong> 할 프로젝트를 선택하여, 선택한 <a href="https://github.com/octocat/Spoon-Knife">Spoon-Knife 프로젝트로</a> 들어간후에 우측 상단의 Fork 를 누른다.
<img src="https://images.velog.io/images/nam_q_e/post/995cddd8-833b-4e9a-883c-e6388d6ccb2a/image.png" alt=""></p>
<p>+
성공적으로 <strong>Fork</strong>가 되면 새로고침한 내레포지토리에 해당 프로젝트가 생성된다.
<img src="https://images.velog.io/images/nam_q_e/post/a9b34f63-4692-40eb-9b3b-4279d85ab66f/image.png" alt=""></p>
<h3 id="1-gitbash로-진행-2">1. GitBash로 진행</h3>
<p>+
local에서 사용가능한 작업 환경을 만들기위해 <strong>git clone</strong> <a href="https://github.com/Q-E-GitHub/Spoon-Knife.git">https://github.com/Q-E-GitHub/Spoon-Knife.git</a> 명령어를 실행한다.</p>
<p>+
<strong>git remote</strong> add origin <a href="https://github.com/Q-E-GitHub/Spoon-Knife.git">https://github.com/Q-E-GitHub/Spoon-Knife.git</a> 명령어로 원격 저장소로 설정하고, 원본 저장소의 변경 내용을 가져오기 위해 <strong>git fetch</strong> origin 으로 확인 후 원하면 병합(merge)를 진행한다.</p>
<p>+
프로젝트를 진행 중 수정된 사항이 있다면 Add와 Commit을 진행하고 git push origin master를 하여 내 Github에 올려준다.
<img src="https://images.velog.io/images/nam_q_e/post/f5a80356-b529-4870-9767-670862382759/image.png" alt=""></p>
<h3 id="2-소스트리로-진행-2">2. 소스트리로 진행</h3>
<p>+
➕로 새 탭을 만들어 Clone 버튼을 클릭한 후, Github에 있는 저장소 주소 <a href="https://github.com/Q-E-GitHub/Spoon-Knife.git%EB%A5%BC">https://github.com/Q-E-GitHub/Spoon-Knife.git를</a> 입력한다.
<img src="https://images.velog.io/images/nam_q_e/post/b210365d-908b-4607-8651-8fed238f3783/image.png" alt=""></p>
<p>+
clone 후, Fetch 버튼을 눌러 변경사항을 확인하고 병합(merge)을 원하면 해준다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/b732e0da-84ca-4258-88f8-f05cca67b63f/image.png" alt=""></p>
<p>+
상단 바에서 저장소 &gt; 원격 저장소 추가 눌러 설정 확인을 하고, 해당 프로젝트를 진행한다.</p>
<p>+
프로젝트를 진행 중 수정된 사항이 있다면 Add와 Commit을 진행하고 커밋메시지 작성 후, ✅
origin/main에 바뀐 내용 즉시 푸시를 선택하면 Github에 올라온것을 확인할 수 있다.
<img src="https://images.velog.io/images/nam_q_e/post/f0c253df-b22d-4d41-bfb8-53b443333e72/image.png" alt=""></p>
<br>

<p>&lt;참고&gt;
[appia tistory_GitHub 가입하기]
(<a href="https://appia.tistory.com/725">https://appia.tistory.com/725</a>)
[🎥유튜브 얄팍한 코딩사전_가장 쉬운 Git 강좌 - (하) Github편]
(<a href="https://www.youtube.com/watch?v=GaKjTjwcKQo&amp;t=2s">https://www.youtube.com/watch?v=GaKjTjwcKQo&amp;t=2s</a>)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SourceTree를 이용한 Git]]></title>
            <link>https://velog.io/@nam_q_e/SourceTree%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-Git</link>
            <guid>https://velog.io/@nam_q_e/SourceTree%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-Git</guid>
            <pubDate>Tue, 21 Dec 2021 15:49:05 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-windows-컴퓨터에-source-tree-설치하기"><strong>📌 Windows 컴퓨터에 Source Tree 설치하기</strong></h2>
<hr>
<p>+
<a href="https://code.visualstudio.com/">🔔 VScode 설치 사이트 바로가기</a>
<a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a> 링크를 통해 프로그램을 설치하고 설치 폴더 경로를 지정한다.
VScode는 편하게 쓰는 IDE(코딩할때 쓰는 프로그램)가 없을때 편의를 위해 다운받음.</p>
<p>+
<a href="https://www.sourcetreeapp.com/">🔔 SourceTree 설치 사이트 바로가기</a>
<a href="https://www.sourcetreeapp.com/">https://www.sourcetreeapp.com/</a> 링크를 통해 들어가 설치프로그램을 실행하여 회원이 아니라면 회원가입 후, 로그인을 해준다.
<img src="https://images.velog.io/images/nam_q_e/post/a33fb81a-0dc9-48a8-8222-94d96032b0db/image.png" alt=""></p>
<p>+
Git만 사용할거라서 Mercurial(분산 버전 관리 시스템중 하나) ✅를 해제하고 진행한다.</p>
<p>+
아이디와 이메일을 확인해준다.</p>
<p>+
SSH키를 보유하고 있다면 등록한다.(추후 등록 가능)</p>
<p>&lt;참고&gt;
[goddaehee tistory_Sourcetree 설치 및 사용법]
(<a href="https://goddaehee.tistory.com/276">https://goddaehee.tistory.com/276</a>)
<br></p>
<h2 id="📌-로컬에서-git-사용하기"><strong>📌 로컬에서 Git 사용하기</strong></h2>
<hr>
<p><strong>-. 커맨드 라인(Command Line)</strong>은 Git 명령어를 입력할때 사용하는 컴퓨터 프로그램으로, 마우스를 사용하는 것이 아닌 프롬프트로 알려진 텍스트 기반 명령어를 입력한다. Git에서는 Git Bash를 의미하는거 같다.</p>
<p><strong>-. 스테이지(Staging Area)</strong>는 로컬저장소로 저장되기 전(commit 전) 거쳐야하는 공간으로, add 명령어를 사용하며, 준비 영역을 의미한다.</p>
<p><strong>-. 커밋(Commit)</strong>은 파일 및 폴더의 추가/변경 사항들에 대해 기록 하는 것으로, 최근 시간 순으로 저장되며 과거 변경 이력이나 내용을 확인 할 수 있다. &quot;<u>하나의 의미있는 변화</u>, <u>하나의 버전</u>, <u>Git이 저장한 하나의 기록</u>&quot;으로 생각할 수 있다.</p>
<p><strong>-. 브랜치(Branch)</strong>는 현 시점에서 여러갈래의 미래로 분기하는 것, 말 그대로 하나의 프로젝트 원본은 그대로 두고 현 시점까지의 동일한 프로젝트를 하나더 만든다. 기본 브랜치는 &quot;master&quot;이고, Git 저장소를 초기화할때 자동으로 생성하고 &#39;HEAD&#39;라는 특수한 포인터는 지금 작업중인 브랜치를 가르킨다. 작업중인 브랜치에서 checkout 명령어를 사용해 특정 브랜치로 이동하여 작업할수있다.</p>
<p><strong>-. 머지(Merge)</strong>는 다른 브랜치에서 작업해놓은것을 현 브랜치에 가져오는것으로, 여러 브랜치로 작업 후, 현 브랜치에 특정 브랜치를 덮을수 있다. 하지만, 머지(Merge)는 동일한 파일의 동일한 부분을 수정시 충돌이 발생하므로 충돌 발생한 부분중 택일하여 재커밋해야한다.</p>
<br>

<p><img src="https://images.velog.io/images/nam_q_e/post/7760ee96-694a-44b2-a7aa-d3f96699ebd6/image.png" alt=""></p>
<blockquote>
</blockquote>
<h4 id="💡-commit할-때-3가지-영역--1가지-별개-영역"><strong>💡 Commit할 때, 3가지 영역 + 1가지 별개 영역</strong></h4>
<p>&#160;&#160;&#160;<strong>Working Directory</strong> : 내가 작업하고 있는 프로젝트의 디렉토리
&#160;&#160;&#160;&#160;<strong>Staging Area</strong> : 커밋을 위해 파일을 선택하는 준비영역
&#160;&#160;&#160;&#160;<strong>Repository</strong> : 커밋들이 모여있는 저장소<br>
&#160;&#160;&#160;&#160;<strong>Stash</strong> : 위 영역과 별개의 임시 영역으로, 임시적으로 작업사항을 저장하고 나중에
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;꺼내서 사용<br></p>
<h4 id="💡-파일-상태-2가지"><strong>💡 파일 상태 2가지</strong></h4>
<p>&#160;&#160;&#160;<strong>Untracked 상태</strong> : 단어 의미대로 &#39;추적되지 않는&#39; 파일로, 파일 생성후 한번도 add하지
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;않은 상태
&#160;&#160;&#160;&#160;<strong>tracked 상태</strong> : 파일이 Git에 의해 그 변동사항이 추적되는 상태로, 특성에 따라
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4가지로 나뉜다.<br></p>
<h4 id="💡-tracked상태일-때-file의-4가지-상태"><strong>💡 Tracked상태일 때, File의 4가지 상태</strong></h4>
<p>&#160;&#160;&#160;<strong>Untracked</strong> : Working Directory에 있는 파일이지만 Git으로 버전관리 전 상태
&#160;&#160;&#160;&#160;<strong>Unmodified</strong> : 신규 파일이 추가되었을때, new file 상태 (git add 상태)
&#160;&#160;&#160;&#160;<strong>Modified</strong> : 파일이 추가된 이후 해당 파일이 수정되었을 때의 상태
&#160;&#160;&#160;&#160;<strong>staged</strong> : Staging Area에 반영된 상태</p>
<p>&lt;참고&gt; 
<a href="https://velog.io/@gpwls320/Git-%EC%9A%A9%EC%96%B4-%EB%AA%85%EB%A0%B9%EC%96%B4">hyeja.log velog_Git, GitHub 개념정리</a>
[iseunghan tistory_Git 3가지 영역]
(<a href="https://iseunghan.tistory.com/322">https://iseunghan.tistory.com/322</a>)
[goddaehee tistory_Git 저장소 만들기]
(<a href="https://goddaehee.tistory.com/217?category=381481">https://goddaehee.tistory.com/217?category=381481</a>)
<br></p>
<h4 id="📢-로컬에서-git을-사용하는-방법-2가지"><strong>📢 로컬에서 Git을 사용하는 방법 2가지</strong></h4>
<ol>
<li>Git Bash_ <a href="https://git-scm.com/">https://git-scm.com/</a> </li>
<li>SourceTree_ <a href="https://www.sourcetreeapp.com/">https://www.sourcetreeapp.com/</a> ✔</li>
</ol>
<h4 id="📢-source-tree-를-왜-사용할까">📢 Source Tree 를 왜 사용할까?</h4>
<p>명령창이 익숙하지않은 초심자에게 GUI환경에서 시각적으로 쉽게 git 할 수 있는 프로그램이다. 형상관리 가능, 협업 가능, 브랜치, 원격 로컬 등 환경셋팅 테스트 유닛 만들기에 수월함의 강점을 보인다.</p>
<br>

<h2 id="2-로컬에서-source-tree로-git-사용하기"><strong>2. 로컬에서 Source Tree로 Git 사용하기</strong></h2>
<hr>
<h3 id="🔍-기본-용어"><strong>🔍 기본 용어</strong></h3>
<p><strong>-. 로컬(Local)</strong> : 네트워크 없이 접속 가능한 것
&#160;&#160;&#160;&#160;↪ 로컬 컴퓨터 : 현재 사용하고 있는 컴퓨터
<strong>-. 원격(Remote)</strong> : 네트워크를 접속해서 사용해야 하는 것
&#160;&#160;&#160;&#160;↪ 원격 저장소 : 네트워크(인터넷)을 통해 접속 가능한 저장소 (ex) GitHub, Bitbucket
<strong>-. 저장소(Repository)</strong> : Git 으로 관리할 폴더(디렉터리)이다
<strong>-. 커밋(Commit)</strong> : Git에서 버전을 기록하는 단위
&#160;&#160;&#160;&#160;↪ 커밋한다 : Git에 하나의 버전을 기록한다
<strong>-. 푸시(Push)</strong> : 새로 생성한 커밋들을 원격 저장소에 업로드 (로컬저장소 -&gt; 원격저장소)
<strong>-. 풀(Pull)</strong> : 로컬 저장소로 파일 다운로드하며, 자동 병합(merge) 수행 (원격저장소 -&gt; 로컬저장소)
<strong>-. 복제(Clone)</strong>: 인터넷에 있는(원격) 저장소를 로컬에 다운 받는 것</p>
<h3 id="🔍-github와-연동-전-간단하게-사용하기"><strong>🔍 Github와 연동 전 간단하게 사용하기</strong></h3>
<p>+
소스트리 창을 열면 상단 Create 눌러 git으로 관리할 폴더의 경로와 저장소 명을 설정해준다.</p>
<p>+
해당 폴더에 있는 commit 전 파일들을 ➕ 버튼을 눌러 staged 해준다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/24140ee9-1fda-46a9-b756-4b27d8c6fa41/%EC%86%8C%EC%8A%A4%ED%8A%B8%EB%A6%AC.png" alt=""></p>
<p>+
스테이지에 올라간 파일을 클릭하고 원하는 커밋메시지를 작성후 커밋 버튼을 눌러준다.
<img src="https://images.velog.io/images/nam_q_e/post/bf280470-36f8-4cba-b3d4-c9114216c5fa/image.png" alt=""></p>
<p>+
커밋이 완료되면 좌측 WORKSPACE 하위 메뉴인 History 창에서는 특정 커밋을 누르면 이전 버전과 비교해서 어떤 변화가 있었는지 보여준다.</p>
<p>+새로운 브랜치를 생성하기 위해서는 상단에 있는 브랜치버튼을 눌러 새로운이름을 입력하고 ✅새 브랜치 체크아웃을 해주면 생성되는 해당 브랜치에서 작업가능하다. 현 작업중인 브랜치 상태와 새로 생성된 브랜치 상태는 같다.
<img src="https://images.velog.io/images/nam_q_e/post/43856681-c3b9-42df-85fc-6a4420e535c2/image.png" alt=""> </p>
<p><img src="https://images.velog.io/images/nam_q_e/post/ba5650ee-8dc6-46df-9c4d-bf9d3a902d70/image.png" alt=""></p>
<p>+
좌측 브랜치 하위메뉴를 펼치면 브랜치 관리가 가능하며 더블클릭하면 해당 브랜치로 체크아웃된다.
<img src="https://images.velog.io/images/nam_q_e/post/d9806c7e-7e9e-4b35-b060-2247319b8b6d/image.png" alt="">
<img src="https://images.velog.io/images/nam_q_e/post/27649be6-3692-442c-875f-ea8187bad923/image.png" alt=""></p>
<ul>
<li>master브랜치로 체크아웃 후, 현 브랜치 위에 new-branch의 작업을 병합하기 위해서는 상단 병합버튼을 눌러준다.</li>
</ul>
<p><img src="https://images.velog.io/images/nam_q_e/post/2523cfa8-453e-456a-b220-9c3e99c7d654/image.png" alt="">
<img src="https://images.velog.io/images/nam_q_e/post/dd5a20e2-0f13-4b7a-9188-0feba1c605f3/image.png" alt=""></p>
<p>+
소스트리로 각각의 브랜치로 체크아웃을 하여 확인하면 master브랜치에 new-branch가 병합된것을 확인할수 있다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/9c244168-6844-450d-9e67-42be408bdf7e/image.png" alt="">
<img src="https://images.velog.io/images/nam_q_e/post/c9ef73f9-3ef6-405e-a346-33ed22bb7a37/image.png" alt=""></p>
<p>+
이후 기능들은 Github와 연동하여 자세히 알아보도록 한다.</p>
<p>&lt;참고&gt;
[coding-groot tistory_설치 및 사용법]
(<a href="https://coding-groot.tistory.com/135">https://coding-groot.tistory.com/135</a>)
<a href="https://www.youtube.com/watch?v=FXDjmsiv8fI">🎥유튜브 얄팍한 코딩사전_가장 쉬운 Git 강좌 - (상) 혼자작업편</a></p>
<blockquote>
<p><a href="https://velog.io/@nam_q_e/2021.12.23.-1%EC%A3%BC%EC%B0%A8-%EC%98%A4%EB%8A%98%EC%9D%98-%EA%B3%B5%EB%B6%80">Github와 연동 과정이 궁금하다면 💡</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[GitBash를 이용한 Git]]></title>
            <link>https://velog.io/@nam_q_e/GitBash%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-Git</link>
            <guid>https://velog.io/@nam_q_e/GitBash%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-Git</guid>
            <pubDate>Tue, 21 Dec 2021 01:20:42 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-windows-컴퓨터에-git-설치하기"><strong>📌 Windows 컴퓨터에 Git 설치하기</strong></h2>
<hr>
<p>+
<a href="https://code.visualstudio.com/">🔔 VScode 설치 사이트 바로가기</a>
<a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a> 링크를 통해 프로그램을 설치하고 설치 폴더 경로를 지정한다.
VScode는 편하게 쓰는 IDE(코딩할때 쓰는 프로그램)가 없을때 편의를 위해 다운받음.</p>
<p>+
<a href="https://git-scm.com/">🔔 Git 설치 사이트 바로가기</a>
<a href="https://git-scm.com/">https://git-scm.com/</a> 링크를 통해 프로그램을 설치하고 폴더 경로를 지정한다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/2f74e1c2-c0d1-4032-b06f-896b79943ee4/image.png" alt="">
+
설치 중 추가 설치로그램 ✅체크는 그대로 계속 진행한다.</p>
<p>+
Git을 사용할 기본 에디터 선택은 기본인 Vim을 선택한다.</p>
<p>+
새 Repository를 생성할 때 Git branch 이름을 지정하는 방법은 기본(&quot;master&quot;) 그대로 선택한다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/1c6270dd-4bfb-4ec6-a675-b8276a349804/image.png" alt="">
+
Git 커맨드를 사용하기 위한 환경변수를 설정한다.</p>
<p>+
SSH 기본 실행 도구를 선택하고 &quot;Next&quot; 해준다.</p>
<ul>
<li>HTTP 연결 옵션을 OpenSSL 라이브러리를 선택하고 &quot;Next&quot; 해준다.</li>
</ul>
<p><img src="https://images.velog.io/images/nam_q_e/post/ffca9ef1-7be9-4dcb-86f8-4e0ec5d4d1fe/image.png" alt="">
+
Git 저장소에 체크인/아웃할 때의 줄 바꿈 방법을 선택하고 &quot;Next&quot; 해준다.</p>
<p><img src="https://images.velog.io/images/nam_q_e/post/be9e2233-fd9d-42fb-a45d-ae277b184fe4/image.png" alt="">
+
Git Bash 터미널 에뮬레이터를 선택하고 &quot;Next&quot; 해준다.</p>
<p>+
Git pull 명령어에 수행될 동작을 기본으로 선택하고 &quot;Next&quot; 해준다.</p>
<p>+
자격 증명 도우미 사용을 선택하고 &quot;Next&quot; 해준다.</p>
<p>+
기타 옵션은 기본으로 선택하고 &quot;Next&quot; 해준다.</p>
<p>+
실험적 기능 사용여부는 <font color='red'> <strong>어떤것도 선택하지않고</strong> </font> &quot;Next&quot; 해준다.
&#160;&#160;↪개발중인 기능으로 익숙하지않다면 선택하지않는것을 권장!</p>
<p>&lt;참고&gt; 
[iseunghan tistory_Git 3가지 영역]
(<a href="https://iseunghan.tistory.com/322">https://iseunghan.tistory.com/322</a>)
<a href="https://taewow.tistory.com/13">taetwow tistory_Git 설치하기(2.3.3.1 이상, 상세한 설치법)</a>
<a href="https://lktprogrammer.tistory.com/5">lktprogrammer tistory_Git의 기본 개념 및 용어 정리</a>
<a href="https://parkjh7764.tistory.com/39">parkjh7764 tistory_Git Bash란 무엇인가, 설치방법</a>
<br></p>
<h2 id="📌-로컬에서-git-사용하기"><strong>📌 로컬에서 Git 사용하기</strong></h2>
<hr>
<p><strong>-. 커맨드 라인(Command Line)</strong>은 Git 명령어를 입력할때 사용하는 컴퓨터 프로그램으로, 마우스를 사용하는 것이 아닌 프롬프트로 알려진 텍스트 기반 명령어를 입력한다. Git에서는 Git Bash를 의미하는거 같다.</p>
<p><strong>-. 스테이지(Staging Area)</strong>는 로컬저장소로 저장되기 전(commit 전) 거쳐야하는 공간으로, add 명령어를 사용하며, 준비 영역을 의미한다.</p>
<p><strong>-. 커밋(Commit)</strong>은 파일 및 폴더의 추가/변경 사항들에 대해 기록 하는 것으로, 최근 시간 순으로 저장되며 과거 변경 이력이나 내용을 확인 할 수 있다. &quot;<u>하나의 의미있는 변화</u>, <u>하나의 버전</u>, <u>Git이 저장한 하나의 기록</u>&quot;으로 생각할 수 있다.</p>
<p><strong>-. 브랜치(Branch)</strong>는 현 시점에서 여러갈래의 미래로 분기하는 것, 말 그대로 하나의 프로젝트 원본은 그대로 두고 현 시점까지의 동일한 프로젝트를 하나더 만든다. 기본 브랜치는 &quot;master&quot;이고, Git 저장소를 초기화할때 자동으로 생성하고 &#39;HEAD&#39;라는 특수한 포인터는 지금 작업중인 브랜치를 가르킨다. 작업중인 브랜치에서 checkout 명령어를 사용해 특정 브랜치로 이동하여 작업할수있다.</p>
<p><strong>-. 머지(Merge)</strong>는 다른 브랜치에서 작업해놓은것을 현 브랜치에 가져오는것으로, 여러 브랜치로 작업 후, 현 브랜치에 특정 브랜치를 덮을수 있다. 하지만, 머지(Merge)는 동일한 파일의 동일한 부분을 수정시 충돌이 발생하므로 충돌 발생한 부분중 택일하여 재커밋해야한다.</p>
<br>

<p><img src="https://images.velog.io/images/nam_q_e/post/7760ee96-694a-44b2-a7aa-d3f96699ebd6/image.png" alt=""></p>
<blockquote>
</blockquote>
<h4 id="💡-commit할-때-3가지-영역--1가지-별개-영역"><strong>💡 Commit할 때, 3가지 영역 + 1가지 별개 영역</strong></h4>
<p>&#160;&#160;&#160;<strong>Working Directory</strong> : 내가 작업하고 있는 프로젝트의 디렉토리
&#160;&#160;&#160;&#160;<strong>Staging Area</strong> : 커밋을 위해 파일을 선택하는 준비영역
&#160;&#160;&#160;&#160;<strong>Repository</strong> : 커밋들이 모여있는 저장소<br>
&#160;&#160;&#160;&#160;<strong>Stash</strong> : 위 영역과 별개의 임시 영역으로, 임시적으로 작업사항을 저장하고 나중에
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;꺼내서 사용<br></p>
<h4 id="💡-파일-상태-2가지"><strong>💡 파일 상태 2가지</strong></h4>
<p>&#160;&#160;&#160;<strong>Untracked 상태</strong> : 단어 의미대로 &#39;추적되지 않는&#39; 파일로, 파일 생성후 한번도 add하지
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;않은 상태
&#160;&#160;&#160;&#160;<strong>tracked 상태</strong> : 파일이 Git에 의해 그 변동사항이 추적되는 상태로, 특성에 따라
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4가지로 나뉜다.<br></p>
<h4 id="💡-tracked상태일-때-file의-4가지-상태"><strong>💡 Tracked상태일 때, File의 4가지 상태</strong></h4>
<p>&#160;&#160;&#160;<strong>Untracked</strong> : Working Directory에 있는 파일이지만 Git으로 버전관리 전 상태
&#160;&#160;&#160;&#160;<strong>Unmodified</strong> : 신규 파일이 추가되었을때, new file 상태 (git add 상태)
&#160;&#160;&#160;&#160;<strong>Modified</strong> : 파일이 추가된 이후 해당 파일이 수정되었을 때의 상태
&#160;&#160;&#160;&#160;<strong>staged</strong> : Staging Area에 반영된 상태</p>
<p>&lt;참고&gt; 
<a href="https://velog.io/@gpwls320/Git-%EC%9A%A9%EC%96%B4-%EB%AA%85%EB%A0%B9%EC%96%B4">hyeja.log velog_Git, GitHub 개념정리</a>
[iseunghan tistory_Git 3가지 영역]
(<a href="https://iseunghan.tistory.com/322">https://iseunghan.tistory.com/322</a>)
[goddaehee tistory_Git 저장소 만들기]
(<a href="https://goddaehee.tistory.com/217?category=381481">https://goddaehee.tistory.com/217?category=381481</a>)
<br></p>
<h4 id="로컬에서-git을-사용하는-방법-2가지"><strong>로컬에서 Git을 사용하는 방법 2가지</strong></h4>
<ol>
<li>Git Bash_ <a href="https://git-scm.com/">https://git-scm.com/</a> ✔</li>
<li>SourceTree_ <a href="https://www.sourcetreeapp.com/">https://www.sourcetreeapp.com/</a></li>
</ol>
<h4 id="📢-git-bash를-왜-사용할까">📢 Git Bash를 왜 사용할까?</h4>
<p>Git Bash는 cmd창과 같은 역할을 한다. 
하지만 운영체제(OS)마다 명령어가 다른데, Git Bash를 설치하면 우리가 사용하는 운영체제인 윈도우(Windows) 운영체제(OS)환경에서도 리눅스 커맨드를 사용할수 있게된다.</p>
<br>


<h2 id="1-로컬에서-git-bash로-git-사용하기"><strong>1. 로컬에서 Git Bash로 Git 사용하기</strong></h2>
<hr>
<p>+
Git Bash창을 띄워준다.</p>
<h3 id="🔍-기본-명령어"><strong>🔍 기본 명령어</strong></h3>
<pre><code>$ pwd // 현재 폴더확인
$ ls -a // -a옵션으로 현재 폴더의 숨김 파일까지 파일 목록 확인
$ cd 폴더명 // 해당 위치 디렉토리로 이동
$ mkdir 폴더명 // 현재 폴더 안에 새로운 폴더 생성
$ touch 파일명 // 현재 폴더 안에 새로운 파일 생성
$ rm -f 파일명.확장자 // 해당 파일 강제 삭제
$ rm -rf 폴더명 // 해당 폴더 삭제
$ echo &quot;출력하고 싶은 문장&quot; // &quot; &quot;안에 문장을 출력</code></pre><br>

<h3 id="🔍-git-관련-명령어-원격-저장소없이-자주-사용하는-기본명령어-✔"><strong>🔍 Git 관련 명령어 (원격 저장소없이 자주 사용하는 기본명령어 ✔)</strong></h3>
<pre><code>$ git // Git 명령어 대한 사용법
$ git --version // Git version확인
✔ $ git c:폴더명 //로컬C드라이브에 있는 해당 폴더로 이동
✔ $ git init // 현재 디렉토리를 로컬 저장소로 설정 (git으로 저장소 선언) 
✔ $ git status // 디렉토리 상태 확인
✔ $ git config --global user.name 이름 // Git저장소로 활용하기전 환경설정_사용자 이름 셋팅
✔ $ git config --global user.email 이메일 // Git저장소로 활용하기전 환경설정_사용자 이메일 셋팅
✔ $ git --list // git 사용자 이름과 이메일 확인
✔ $ git add 파일.확장자 // 원하는 파일 스테이지에 추가 (커밋할 파일을 선택하는 것)
✔ $ git add -A // 모든 파일을 스테이지에 추가

✔ $ git commit // 스테이지에 있는 파일들을 로컬 저장소에 저장 (프로젝트 중 하나의 버전/지점 생성)
✔ $ git commit -m &quot;커밋 메시지 작성&quot; //커밋메시지 입력후 커밋
✔ $ git log // 커밋 이력 상세조회
$ git log -p // 각 commit의 diff 결과를 줄단위로 출력
✔$ git log —oneline —decorate —graph —all // 커밋이력을 상세하게 그래프로 표현
$ git diff // commit된 파일상태와 현재 수정중인 상태 비교

✔ $ git branch // 로컬에서의 브랜치목록 보기 (현재 작업중인 브랜치는 앞에 *붙음)
$ git -a branch // 로컬과 원격에서의 브랜치목록 모두 보기 (현재 작업중인 브랜치는 앞에 *붙음)
✔ $ git branch 브랜치명 // 브랜치 생성 (단, master 브랜치에서 1번이상 commit필수)
✔ $ git checkout 브랜치명 // 생성된 브랜치로 이동해서 작업실행
✔ $ git checkout -b 브랜치명 // 생성된 브랜치에서 바로 이동하여 작업실행
✔ $ git merge 브랜치명 // master 브랜치에 병합하고자 하는 다른 브랜치를 병합
✔ $ git branch merge 브랜치명 // 현재 checkout된 브랜치로 명령어에 입력한 브랜치를 병합
✔ $ git branch -d 브랜치명 // 브랜치 삭제하기 
$ git config --global init.defaultBranch 새 브랜치명 // 기본 브랜치명인 master을 새롭게 변경

$ git remote // 원격저장소 목록 확인
$ git remote add 원격 저장소명 저장소URL // 입력한 URL의 원격저장소를 입력한 원격저장소명으로 추가

$ git push 원격저장소명 브랜치명// 새로 생성한 커밋들을 원격 저장소에 업로드 (로컬저장소 -&gt; 원격저장소)
$ git push -u 원격 저장소명 브랜치명 // u옵션으로 한번 등록한 후 git push만 입력해도 업로드 가능

$ git pull 원격 저장소명 브랜치명// 로컬 저장소로 파일 다운로드하며, 자동 병합(merge) 수행 (원격저장소 -&gt; 로컬저장소)
                                 자동으로 병합이 되기 때문에 무엇이 추가되고 병합되었는지 확인이 안 됨
                                 코드를 업데이트했거나, 아니면 Github를 통해서 commit했을 때 그 내용을 내려받는 명령어
$ git fetch 원격 저장소명 브랜치명 // 로컬 저장소로 파일 다운로드하며, 수동 병합(merge) 수행, 로컬에 영향X (원격저장소 -&gt; 로컬저장소)
                                   다른 사람이 수정한 부분을 확인가능

$ git fork // 남(다른)의 원격 저장소를 다른 원격 저장소로 복사
$ git clone 저장소URL // URL의 원격저장소를 복사하여 내 로컬저장소에 복사 (remote add 명령어 필요없음)
                        git pull과 비슷하지만 클라이언트 상에 아무것도 없을 때 내려받는 명령어

✔ $ git stash // 작업 중 커밋 전에 변경사항을 모두 stash에 보관하는것, stash 스택에 잠시 저장했다가 꺼내 사용 
               즉, 개발 중에 merge/rebase를 해야할 경우 reset/commit하기에 구현이 되지않았을때 사용
✔ $ git stash list// stash 명령어를 통해 저장한 stash 목록 확인
$ git stash apply 스태쉬ID(ex.stash@{0}) // list로 확인한 목록 중 원하는 작업 다시 가져옴
$ git stash drop 스태쉬ID(ex.stash@{0}) // list로 확인한 목록 중 원하는 작업 삭제
$ git stash clear // list에 있는 stash목록 모두 지우기
$ git stash branch 새로만들 브런치명 스태쉬ID //  stash내용으로 브런치가 생성되고 생성된 브런치로 checkout되며 stash는 삭제
$ git stash save 메시지 // stash를 많이 한 상황에서 list로 목록을 봐도 구분이 되지않을때 커밋메시지처럼 메시지와 함께 저장하기

✔ $ git checkout 커밋ID(6자리숫자) // git log 명령어로 **이동하고싶은 커밋시점**을 확인하고 사용
                                    git revert와 비슷하게 이전 이후의 커밋내역은 그대로 유지되고, 커밋시점만 이동시킬수있음

✔ $ git reset 커밋ID(6자리숫자) --hard // git log 명령어로 **돌아가고싶은 커밋시점**을 확인하고 사용
                                        특정 커밋으로 되돌아가는데 되돌린 버전 이후는 히스토리에서 삭제

✔ $ git revert 커밋ID(6자리숫자) // git log 명령어로 **되돌릴 커밋시점**을 확인하고 사용
                                  모든 commit을 유지하고 reset과 달리 이전으로 돌아가는 것이 아닌 되돌릴 시점을 
                                  현재 커밋 앞으로 가져와 버전을 유지하면서 되돌린 버전의 commit을 만들어 준다.</code></pre><p><img src="https://images.velog.io/images/nam_q_e/post/1b6361eb-305f-4851-b687-ca6441a6e599/image.png" alt=""></p>
<p>&lt;참고&gt;
[coding-groot tistory_Git을 사용하기 위해 알아야할 용어 및 개념들]
(<a href="https://coding-groot.tistory.com/111">https://coding-groot.tistory.com/111</a>)
[pleasurehwang tistory_Github 기본개념]
(<a href="https://pleasurehwang.tistory.com/17">https://pleasurehwang.tistory.com/17</a>)
[coding-groot tistory_Git Bash 간략 사용기]
(<a href="https://coding-groot.tistory.com/97">https://coding-groot.tistory.com/97</a>)
[dev-yakuza posstree_git branch와 git merge]
(<a href="https://dev-yakuza.posstree.com/ko/git/branch-merge/">https://dev-yakuza.posstree.com/ko/git/branch-merge/</a>)
<a href="https://www.zerocho.com/category/Git/post/581042fdcae2d100152ceae6">zerocho_Github 사용하기, remote, clone, push, pull</a>
<a href="https://www.youtube.com/watch?v=NBb-FFB2mJk&amp;list=TLPQMDEwMTIwMjJGIvovJqBwSQ&amp;index=1">🎥유튜브 생활코딩_Reset &amp; Revert 5.1. revert 이론</a>
<a href="https://www.youtube.com/watch?v=FXDjmsiv8fI">🎥유튜브 얄팍한 코딩사전_가장 쉬운 Git 강좌 - (상) 혼자작업편</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Git과 Github]]></title>
            <link>https://velog.io/@nam_q_e/Git%EA%B3%BC-Github-jejwcxex</link>
            <guid>https://velog.io/@nam_q_e/Git%EA%B3%BC-Github-jejwcxex</guid>
            <pubDate>Mon, 20 Dec 2021 02:45:13 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-git과-github란-무엇인가"><strong>📌 Git과 Github란 무엇인가</strong></h2>
<hr>
<p><strong>-. 저장소(Repository)</strong>는 소스코드가 저장되어 있는 여러개의 브랜치(Branch)들이 모여있는 저장 공간으로, <u>로컬 저장소</u>/ <u>원격 저장소</u>가 있다. 즉, 우리가 Git으로 관리하고 있는 폴더를 말한다.</p>
<blockquote>
<p> <strong>로컬저장소(Local Repository)</strong>는 지역저장소라고도 말하며, 네트워크(인터넷) 없이 접속이 가능한 저장소를 말한다. 즉, 우리 컴퓨터에 있는 저장소를 의미한다.<br>
<strong>원격 저장소(Remote Repository)</strong>는 네트워크(인터넷)을 통해 접속 가능한 저장소로, 깃허브가 해당된다. 기본적으로 로컬저장소에서 작업을 수행하고, 그 결과를 원격 저장소에 저장한다. </p>
</blockquote>
<p><strong>-. 깃(Git)</strong>은 프로그램 등의 소스 코드 관리를 위한 분산 버전 관리 소프트웨어 시스템이다.
항상 모든 파일을 지켜보며, 모든 파일의 변화를 기록한다.</p>
<p><strong>-. 깃허브(Github)</strong>는 깃(git)서버를 제공해주는 하나의 서비스이다. 
그래서 깃허브(Github) 외에도 Gitlab, Bitbucket 등 다른 서비스들도 존재한다.</p>
<p>=============================================================
 <img src="https://images.velog.io/images/nam_q_e/post/19e00278-3d13-46be-b8ab-5c6b9f16a6be/git2.PNG" alt=""></p>
<p>각각의 <u>깃(git)의 변화 기록을 깃허브(Github)라는 곳</u>에 올린다.
 내 컴퓨터에서 깃(Git) 히스토리를 가져와서 깃허브(Github)웹사이트에 푸쉬하는 것이다.
 쉽게 말하면, <strong>깃(Git)</strong>은 <font color='brwon'><strong>&#39;책&#39;</strong></font>이고, <strong>깃허브(Github)</strong>는 <font color='brown'><strong>&#39;도서관&#39;</strong></font> 같다고 설명할 수 있다.
 깃을 사용하면 <code>ㅇㅇㅇ_최종.zip, ㅇㅇㅇ_최최종.zip, ㅇㅇㅇ_찐최종.zip</code> 같은 일이 일어나지 않는다.</p>
<h4 id="📢-깃git의-장점은-무엇일까">📢 깃(Git)의 장점은 무엇일까?</h4>
<ol>
<li>컴퓨터가 고장나거나 데이터가 날아가도 저장된 데이터를 사용할 수 있다. </li>
<li>모든 파일 변화(누가 무엇을 언제 어디서 몇번 등)를 기록한다.</li>
<li>하나의 파일을 가지고 다른 사람들과 작업이 가능하다.</li>
<li>매번 저장한 파일의 원하는 버전으로 타임머신처럼 이동 할수 있다.</li>
<li>각각 다른 파일들을 한번에 관리 할수 있다. (각 파일이 공통으로 갖고있는 부분의 해당 변경사항을 각 파일에 바로 적용하도록 함)<br>

</li>
</ol>
<h4 id="📢-여러-서비스들-중-깃허브github를-사용하는-이유는">📢 여러 서비스들 중 깃허브(Github)를 사용하는 이유는?</h4>
<p> 엄청나게 다양한 오픈소스 프로젝트(에어비앤비, 구글, 아마존 등)가 올라와 있어 코드확인이 가능하다.</p>
<p>&lt;참고&gt; 
<a href="https://www.youtube.com/watch?v=YFNQwo7iTNc">🎥유튜브 노마드코더_Git/Github 정리</a></p>
]]></description>
        </item>
    </channel>
</rss>