728x90
pwd : 현재 파일의 위치와 경로를 알려준다

clear : 화면의 모든 글자만 지운다.(작업한걸 지우는게 아니다)
echo 내용 : 화면에 내용출력

echo "내용" > test.txt  :  test.txt파일을 생성하고 그안에 내용을 입력

echo "내용2" >> test.txt : test.txt파일에 내용2를 추가

> 와 >>의 차이
>는 처음에 사용하면 파일을 생성하고 내용을 입력하는데
파일이 있는 상태에서 또 >로 내용을 입력하면 덮어씌어진다

>>를 하게되면 이전 내용에 추가가 된다.

cat test.txt : cat은 파일안의 내용을 보여준다.

 

ls
ls -l

ls -la
ls -al
ll


전부다 해당위치한 곳의 파일을 보는 명령어
ls 는 일렬로 파일이름만 출력(숨겨진파일은 안보인다)

ls -l의 l은 list인가? 한줄씩 더 보기 편하게 출력

ls -al, ls -la 는 둘다 똑같다, 숨겨진 파일 까지 출력

ll은 ls-l이랑 똑같다.

   
cd d:  = d드라이브로 이동

mkdir gitTest  = gitTest파일 생성

ll  =  지금위치해 있는 git 폴더안에 있는 파일 출력
방금 생성한 gitTest 파일 안으로 접속

git init : 해당파일을 깃 저장소로 만든다
해당 파일 안에서 git init를 하면 보이지 않는 파일인 .git이 생기고 로컬저장소로 변한다.
저장소가 되면 master이라는 별명이 붙는다.

gitBash창에서 ls -al를 통해서 볼 수 있다.
깃 저장소를 해제하고 싶으면 .git파일을 지우면된다.

rm -rf .git  :  rm -rf는 파일을 지우는 명령어

위 명령어를 통해 .git파일을 삭제하고 나면 master이라는 별명이 사라지고
ls -al로 확인하면 .git파일이 없어진걸 확인할 수 있다. 
   
git status  :  지금상태가 어떤지 볼 수 있는 명령어
git config --global alias.내가 사용할단어 명령어  : 
명령어를 단축키로 지정하는 명령어
사진처럼 git status를 하기 귀찮으면
git condig --global alias.st status 라고 하면
status가 st가 되어
git st = gir status가 된다.
   

 

 

echo : 화면에 입력?

echo hello world! > a.txt  : hello world! 라고 쓰인 문자열을 a라는 이름의 txt파일로 저장

그걸 a, b, c 3개를 했고

ls 를 통해 만들어진걸 확인

(꼭 bash에서 이렇게 안하고 그냥 메모장으로 만들어도 된다. )
1. master라는 브런치에서 작성하고 있고
2. 아직 커밋없고
3. untracked된( 저장되지 않은) 파일이 있다
4. 저장되지 않은 파일 목록

nothing added to commit but untracked files present
(use "git add" to track)
아직 커밋할건 없지만 untracked된 파일이 있다. git add를 통해 기록할 수있다.

파일이 변경되거나 생성, 삭제되면 
git add 라는 명령어로 먼저 추가를 하고
git commit 이라는 명령어로 커밋을 해줘야 한다.
지금의 상태를 그림으로 보면 이렇게 되어있다

(앨리코딩)
 커밋을 하기위해서 
git add a.txt 로 파일 a를 저장했는데
에러가 뜬다

warning: LF will be replaced by CRLF in a.txt. The file will have its original line endings in your working directory

리눅스와 윈도우의 줄바꿈 때문이라는데 
blog.naver.com/jsjs2424/222221145549

여기에서 더 정확한 내용 확인이 가능

아무튼 git status를 통해 상태를 확인하면
추가한 a파일은 커밋할 준비가 되어있다고 나오고
그외의 b, c파일은 아직 똑같은 상태이다

아래는 그림으로 표현
나머지도 추가한다.

첫번째 사진처럼 파일명을 하나씩 써도 되고
(구분하는 거 없이 그냥 띄어쓰기를 한다)

두번째는 공통?전부를 뜻하는 *를 사용해서 파일명이 뭐가 되었든 .txt인 모든 파일을 추가 한다는 의미가 된다

세번째는 그냥 모든 파일을 추가한다는 의미이다.

(에러는 위에 a파일을 추가할 때랑같다)
그리고 git status로 확인하면 모든 파일이 커밋할 준비가 되어 있다.

 a파일을 수정해서 다시 add하고 커밋하는걸 할라했는데 오타가 났다
>>와 >의 차이는 좀이따 알아본다.
제대로 오타가 난 파일이 추가되었다.
지우자
일단 ls -al로 파일명을 확인하고

rm -rf a.yxy  를 통해 파일을 지운다

그리고 다시 확인
 a 파일을 수정하고 다시 add commit을 해본다
echo Hi >> a.txt  :  a.txt파일에 Hi를 추가한다

파일을 열어서 확인하면 hi가 추가되어있다.
git ststus 로 지금의 상태를 확인하면

빨간 글자로 a.txt가 수정되어 있다고 나타나있다.

a.txt파일은 아까 add를 한번 해줬기 때문에 git이 추적하고 있는 상태이다. 
하지만 hi를 입력해서 수정된 a.txt파일은 아직 add를 하지 않았기
때문에 초록색으로 되어 있는 a.txt는 Hello World!만 쓰여있고
수정된, 빨간색으로 되어 있는 a.txt에는 Hello World! 와 Hi가 있는 상태이다.


수정된 a파일을 git add a.txt를 통해 add해주고
git status로 상태를 확인하면
성공적으로 add된 것을 볼 수있다.

사진에 보면 빨간 밑줄친 1번이 있는데
git rm --cached <file>...를 통해 add로 추가한 파일을
지울수 있다고 알려주고 있다.
git rm --cached a.txt 를 실행해보면
a.txt파일이 add를 하기 전으로 돌아간걸 볼 수 있다.
일단 다시 다 취소해본다.

git rm -cached *
git status
 
git add에 대해 알아보자
git add * git add . 는 미묘하게 다르다

git add *
를 하게되면 디렉토리안에 있는 모든 파일이 add 된다
rm a.txt
그 상태에서 a파일이 잘못되어서? 필요없어서 삭제를해본다

ls를 통해 디렉토리에 있는 파일 확인
위에서 a, b, c.txt 파일 3개가 있는 상태에서
git add * 를 통해 디렉토리에 있는 모든 파일을 git staging area에 추가했었다.
그래서 깃은 지금 파일 3개가 있는줄 알고 있는데

방금 rm a.txt로 a파일을 지우고 
git add * 를 통해 디렉토리에 있는 모든 파일을 추가했다.
git status 를 해보면 빨간 글씨로 변경된 사항중에 a.txt가 삭제되었다고 알려준다.
그리고 a는 삭제했기 때문에 디렉토리에는 a가 없어서 
변경된게 수정되지 않는다.
이상태에서 git add . 를 통해 add를 하고
git status 로 확인해보면
git add * 와 다르게 삭제된 a의 정보도 수정이 된다.

약간의 차이가 있다. 
git add . 가 더 큰개념?
   

 

예제 상황

파일이 엄청 많은데 css파일만 add하고싶다.

이렇게 파일이 여러개 인데 
css파일만 add하고싶을땐?
git add *.css 를 통해 파일확장자가 css인것만 추가한다

한단계 더 나아가서 log파일은 add하면 안되는데 뭐 log파일 저거 하나때문에 git add . 나 git add * 를 못 쓰기엔 너무 불편하다. 
ignore를 사용해서 추가를 못하게 막아보자

echo *.log > .gitignore  : .gitignore파일을 생성하는데 그 안에 확장자가 .log를 것들을 전부 추가한다.

파일에 들어가서 확인해보면 안에 확장자가 log인 이름이 적혀 있는걸 확인할 수 있다.

이 ignore안에 적혀있는 이름을 가진 파일들을 add를 할때 전부 제외된다.


(git bash에서 파일을 여는 방법은 open .gitignore)
gitignore파일을 만든후에 
git status로 확인을 해보면 
indexlog.log파일은 없어지고 .gitignore만 나타나게 된다.
이그노 파일 안에 작성 방식은 예를 들면 이렇다

1번 파일명을 콕집어서 쓰는방법
2번 *를 이용해 log라는 확장자를 가진 모든 파일을 쓰는 방법
3번 일정한 파일 안에 있는 모든 것들을 추가하는방법.(파일안에 있는건 모두 추가안됨)
4번 일정한 파일안에 지정한 확장자를 가진 파일만 추가하는 방법

상황에 맞춰서 이그노 파일안에 git add때 add되선 안되는 파일들을 선언할 수 있다.
   

git status를 더 알아보자

git status -s 를 하면 status가 간단하게 나타난다
지금 c.txt가 add한 상태인데 수정하고 다시 add를 안해서 빨간 M이 보인다.
git diff를 이용하면 -s와 다르게 더 자세하게 볼 수 있다.

첫줄부터 보면 a/c.txt는 이전버전 b/c.txt는 지금버전
(유튜뷰에서 캡처한거라 c.txt에 add라는 글자를 추가한 상태이다)

그다음줄은 잘모르고

그다음줄은 ----a/c.txt 이전버전의 파일과
+++b.c.txt 지금 버전의 파일을 비교한다는거고

@@ -1 +1,2 @@ 는
-는 이전파일을 말하고 1은 이전 파일의 첫번째 줄을 말한다.
그럼 하얀 글씨인 hello world!를 뜻한다
그리고 +는 새로운 파일을 말하고
1,2  첫번째 줄에서 2번째 줄까지 보라는 뜻이다

추가된 거는 +로 나오고 삭제가 되었으면 -로 나온다.

이 상태에서 나올려면 q를 누르고 엔터를 누르면 된다.

그리고 git diff --staged를 통해 스테이징 에리어이 있는 것도 확인 할 수 있다...
처음에는 아무것도 없었는데 
--- /dev.null
c.txt파일이 추가되었고
+++b/c.txt
hello word!라는 글자가 추가되었다

추가가된 style.css안에는 글자가 styling라고 쓰여져 있었다

나갈떈 q 엔터

여기까지가 add만 한거...

 

이제 commit

지금 add를 한 상태에서 git commit을 할거다
git commit 을 치면 이런 화면이 나오는데

커밋에 대한 내용을 메모하는 화면이다.

그냥 키보드에서 i 를 누르면 아래가 insert로 바뀌면서 글자를 입력할 수 있는 상태가 된다.

그리고 제목과 내용을 입력 하면된다

내용을 입력하고

입력이 완료되면 esc 를 누른다음에 :wq 를 입력하면
저장되고 종료된다
를 누르고 엔터를 하면 저장되지 않고 종료된다.
그럼 1번처럼 안내가 나오고

커밋한 log들을 볼 수 있는 git log 를 입력하면
커밋했던 것들을 볼수 있다. 커밋에 대한 내용과 시간
그리고 author은 커밋한 사람이다.
나중에 협업을 하면 여러명이 커밋하기 때문에
누가 뭘 수정해서 커밋했는지 알 수 있다

노란글씨로 commit  ~~~ 길게 있는건 일련번호같은거??
나중에 커밋한걸 취소하거나 되돌릴때 저 코드를 이용한다.

git commit -m "내용"

git commit보다 더 간단하게 커밋하는 명령어.
git commit은 제목과 내용을 적었는데 이건 제목+내용이 아니라 그냥 한줄로만 메모할 수 있다.


1. echo add >> c.txt
2. git status -s
3. git add .
4. git commit -m "c.txt add"
5. git log


1번 c.txt에 내용추가
2번 git status의 간소화 버전인 -s를 붙여서 확인
3번 모든파일 add
4번 git commit -m "내용" 으로 뭘 커밋했는지 간단한 내용 작성
5번 git log로 커밋한 기록 확인

 

echo add2 >> c.txt
git commit -am "내용"
git log

c.txt를 또 한번 수정하고 
git add . 를 안한 상태에서
git commit -am "내용" 으로 커밋을 했다.
-am이 add와 commit을 한번에 해주는 명령어이다
git log로 확인하면 똑같이 된걸 볼 수 있다.
add할 것도 없고 commit할 것도 없고 지워진것도 없고 새로 생성한 것도 없으면 
git status -s 를 하면 아무것도 안나오고

git status 를 하면 지금위치는 master브런치이고
클린하다고 알려준다.
git log -p

커밋한 내용을 더 자세히 볼 수 있다.
뭐가 추가됬는지 삭제됬는지 수정됬는지 간단하게 볼 수 있다.

git log --oneline

git log를 간단하게 한 줄로 볼 수 있다.

 

만약에 작업이 잘못되어서 commit 한걸 되돌려야 할때


 앞서 한걸 예로 들어서 제일 최근에 커밋한 
"c.txt 파일에 add2를 추가하고 add와 커밋을 동시에 하는 명령어로 커밋"
이걸 지우고 전껄로 되돌리고싶다 하면
git reset 커밋지점 을 쓰면된다.
커밋 지점은 바로 위에 사진을 보면 노란 글씨로 commi  ~~~ 가  있는데 이걸 사용한다.

1번이 잘못된거라서 지우고 2번으로 되돌아가고싶다~ 하면

2번에 밑줄친걸 복사한다.
git reset ~~~
git log


사진처럼 명령어를 입력하고 git log로 확인을 해보면 
"c.txt 파일에 add2를 추가하고 add와 커밋을 동시에 하는 명령어로 커밋"  이 지점이 사라진걸 볼 수 있다.

그럼 작업을 하고 커밋했던 저 부분들이 사라지고
작업 전으로 되돌아 갈 수 있다.

Reset
- 특정 지점의 과거 커밋으로 이동, 이동된 이후의 커밋은 삭제된다.
- 과거 커밋으로 이동하면서 그 이 후의 커밋은 삭제되어 되돌릴 수 없다.
- 다른 사람들과 협업하는 저장소에서 push 후에 reset을 하면 다른사람의 코드에 문제가 생길 수 있으므로 아예 금지
   
   
   
728x90

+ Recent posts