아자아자 화이팅이닷 !

231229 엘리스 SW트랙 1주차 Day5 본문

TIL

231229 엘리스 SW트랙 1주차 Day5

유초23 2024. 1. 1. 14:16
728x90

* Git의 특징

- 가지치기와 병합이 가능하다. (일/기능 단위로 작업 가능)

- 가볍고 빠르다. (대부분 서버와의 통신없이 로컬에서 진행됨)    /   [반대] SVN은 중앙시스템에서 코드 공유

- 분산 작업에 효율적 (모든 사용자들이 모든 코드를 가지고 있음)

- 무결성 보장 (데이터 보장) / 모든 파일은 "체크섬"이라는 검사 과정을 거침 / 체크섬은 16진수 문자열로 이루어져 있음 -> commit ID라고도 불림 / commit ID가 같은것은 파일 또는 구성이 완벽히 같다는것을 의미 / 버전 관리도 편함

- 준비 영역을 가지고 있음 / 수정한 내용을 repository에 반영하기 전 검토하는 단계 / 작업 디렉토리에서 반영할 파일을 git add라는 명령어로 staging area에 선택을 하고, staging area에서 실제로 파일을 저장소에 반영하는 git commit 작업을 마치게 됨

- 오픈 소스 (소스 공개, 누구나 사용 가능)


* git version : git의 버전 확인

* git init : 기존의 디렉토리를 git repository로 설정 / git 저장소 생성

* git config --global user.name "이름" : git관련 작업 기록에 남는 이름 수정

* git config --global user.email "이름" : git관련 작업 기록에 남는 이름 수정

* git config --list : git 설정 확인


* Git add를 하면

이렇게 옮겨짐 !


* Git commit은 .git 저장소 내에 staging area에 있는 모든 파일을 저장

이렇게 옮겨짐 !


* git commit --amend로 내용 수정 가능

- 여기에서 commit 메세지 수정할 때 큰따움표 "" 꼭 쓰기 ^^ ....

git commit --amend -m "add main.py"

라잌 디스 ..

 

* git log로 모든 commit 확인 가능


  • git commit -m <커밋 메세지>를 이용하면 에디터 없이 바로 커밋 메세지를 작성할 수 있어요.
  • 만약 git commit이라고 적으면 nano에디터가 켜져요.
  • nano에디터에서는 Ctrl+X -> Y -> Enter 순서로 누르면 저장할 수 있어요.

이런 팁도 얻을 수 있었다 !


* git status는 staging file들의 상태 확인

* git log는 .git repository에 존재하는 commit history를 확인

* git log --graph는 commit간의 연결된 관계를 아스키 그래프로 출력 => branch가 나왔을 때 유용 !


* Unmodified 파일은 항상 Git 저장소에 있는 파일과 내용이 같음을 보장할 수 있다.


* master 브랜치에서 다른 것 변경된것 없이 새로운 내용만 추가된다면 fast-forward 병합이다 !


* git branch -d <branch name>을 하면 branch 삭제


* git reset --hard <커밋 해시>를 사용하면 현재 브랜치를 특정한 커밋으로 이동할 수 있다.


를 할때에는 5-2-3-1-6-4 순으로 하면 됨 !


* Git 원격 저장소를 받아오는 방법 : git clone


* 원격저장소를 로컬저장소와 연결하려면 git remote add origin (주소값) 하면 됨 !


1. git remote add origin (원격저장소 이름/주소)으로 로컬저장소와 연결

2. git fetch 또는 git pull을 이용하여 원격저장소의 내용을 동기화 --> git pull origin master / git fetch origin master

3. fetch를 실행한 경우 git merge origin/master로 병합을 완료 

4. git push origin master 를 이용하여 변경된 사항을 원격저장소에 전달


* git remote -v를 하면 지정한 저장소의 이름과 주소를 볼 수 있다 !


* 로컬저장소에서 remote가 추가되었는지 확인해보려면 git remote 또는 git remote -v를 사용하면 된다 !


* 충돌이 나면

1. git pull origin master

2. \cp -f modified.py app.py (예시)

3. git add app.py

4. git commit -m app.py

5. git push origin master


* git 브랜치 이동 : git checkout <이름>  => 까먹지 말자 ^^...

* git commit -m "모자장수" => 또 큰따옴표 안씀 ^^ ... 정신차리자 내자신아


< 06 Git 문제집 - 변경점의 일부분만 골라서 커밋하기 > 다시 한번 보기 !

< 06 Git 문제집 - 병합 중 충돌이 발생했을 때 해결하기 > 에서

git commit -m과 git commit -am의 차이가 뭔지 궁금했돠

 

<git commit -am>은

  • -a 옵션은 모든 변경된 파일을 자동으로 스테이징하고 커밋하는 역할을 합니다. 이 옵션을 사용하면 git add 명령어를 사용하지 않아도 되므로 편리합니다. 하지만 새로 생성된 파일은 자동으로 스테이징되지 않으므로 주의해야 합니다.
  • -m 옵션은 커밋 메시지를 작성하는 역할을 합니다. 여기서는 “soccer_leagues.py”라는 메시지를 작성하였습니다. 커밋 메시지는 커밋의 목적이나 변경 내용을 간결하게 설명하는 용도로 사용됩니다.
  • 따라서 git commit -am "soccer_leagues.py" 명령어는 변경된 파일을 자동으로 스테이징하고 “soccer_leagues.py”라는 커밋 메시지로 커밋하는 역할을 합니다.

< 06 Git 문제집 - 실수로 삭제한 파일 복원하기 > 에서

확인한 기록을 토대로 저장소를 복원할 때에는 git reset --hard "<commit한 내역>을 해주면 된다 !


< 06 Git 문제집 - 여러개의 저장소를 생성하기 > 에서

mkdir hello를 하고 꼭 cd hello로 가서 git init 해주기 !

그리고 다른 디렉토리로 갈때는 cd ../project 이런식으로 해주기 ! 


* 복습하면서

- CSS에서 li.one을 하면 li 태그중 클래스 one을 선택하겠다는 의미 / li .one (중간에 공백있으면) 부모 자식 지간이다 !

- &copy; 하면

생성 !

- 브라우저 기준 가운데 정렬하려면 margin : 0 auto; 하면 된다 !


* 미리 만들어진 원격 저장소를 관리할 때에는 로컬 저장소를 생성할 필요가 없다 !

따라서 git clone -> git checkout -> 커밋 생성 -> git push 해주면 됨 !


고생해똬 ,,

728x90