mtak0235 / webserv

0 stars 0 forks source link

깃 시작하기, 이슈 트래킹 문제 만들기 #14

Closed mtak0235 closed 3 years ago

mtak0235 commented 3 years ago
cseom commented 3 years ago

https://www.lainyzine.com/ko/article/git-init-how-to-initialize-git-repository/#git-init-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%A1%9C-%EC%A0%80%EC%9E%A5%EC%86%8C-%EC%B4%88%EA%B8%B0%ED%99%94%ED%95%98%EA%B8%B0

soo-bak commented 3 years ago

문제 1. [ git init ]


git init 실습해보고, .git 폴더의 역할을 알 수 있게 하는 문제

문제 2. [ git config ]


git config 에 관한 다양한 개념들 공부하는 문제

문제 3. [ git status ]

git status 입력 시 나오는 출력의 항목들 중 수정됨, 삭제됨, 만들어짐, 커밋됨, 커밋안됨, 언트랙드 파일임 등의 항목에 대해서 퍼즐을 맞추듯이 특정 항목(문제에서 예시 제공)들이 잘 나오게끔 하는 문제.

Untracked files: (use "git add ..." to include in what will be committed) test.md

nothing added to commit but untracked files present (use "git add" to track)

// 정답 예시 touch test.md

// 문제 예시 2 On branch master Your branch is up to date with 'origin/master'.

Changes to be committed: (use "git restore --staged ..." to unstage) new file: test.md

// 정답 예시 2 touch test.md git add test.md



## 문제 4. [ .gitignore]
`.gitignore` 에 대해서 공부하는 문제
* 문제 3과 비슷한 형식으로 진행되는데, 이번에는 `git add .` 혹은 `git add *` 을 입력하여도 특정 파일이 스테이징에 올라가지 않도록 하는 문제

---
* 대략적인 틀만 작성한 것
* 팀원 피드백 진행 후 상세 내용 수정 및 추가 문제 작성 예정
cseom commented 3 years ago

문제 5. git add 로 추가한 내용 취소하기

git add 한 내용을 취소하는 문제

1번. 저장소 초기화하고 한번도 커밋하지 않았을 때 git add 한내용 취소

$ git init
$ touch README.md
$ git add README.md
$ git status

// 정답
$ git rm --cached README.md

2번. 첫 커밋 이후 git add 한 내용 취소하기

$ touch License
$ git add License
$ git status

정답

git reset HEAD
git reset HEAD [FILE...]

또는

git restore --staged [FILE...]

문제 6. 원격 GitHub에 저장소 Push하기

깃허브아이디와 personal access 토큰을 생성후

private 저장소를 만들고 그저장소에 커밋한 내용을 푸시하는 문제

$ git remote add origin git@github.com:lainyzine/git-init.git
$ git branch -M main
$ git push -u origin main

문제 7. git commit 취소하기 & 변경하기

commit 을 취소하기

정답

// commit 목록 확인
$ git log

// [방법 1] commit을 취소하고 해당 파일들은 staged 상태로 워킹 디렉터리에 보존
$ git reset --soft HEAD^
// [방법 2] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에 보존
$ git reset --mixed HEAD^ // 기본 옵션
$ git reset HEAD^ // 위와 동일
$ git reset HEAD~2 // 마지막 2개의 commit을 취소
// [방법 3] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제
$ git reset --hard HEAD^
https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html

변경하기

$ git commit --amend
// 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌린다.
$ git reset --hard HEAD

문제 8. git push 취소하기

git push한 내용을 취소하는 문제

주의 사항

정답

  1. 워킹 디렉토리에서 commit 을 되돌린다
// 가장 최근의 commit을 취소 (기본 옵션: --mixed)
$ git reset HEAD^
// Reflog(브랜치와 HEAD가 지난 몇 달 동안에 가리켰었던 커밋) 목록 확인
$ git reflog 또는 $ git log -g
// 원하는 시점으로 워킹 디렉터리를 되돌린다.
$ git reset HEAD@{number} 또는 $ git reset [commit id]
  1. 되돌려진 상태에서 다시 commit
$ git commit -m "Write commit messages"
  1. 원격 저장소에 강제로 push
$ git push origin [branch name] -f
또는
$ git push origin +[branch name]

문제 9. git stash, git clean

git stash와 git clean 을 연습해보는 문제

추가예정.....

출처 https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html

soo-bak commented 3 years ago

Exercise 00 : My first repository

Turn-in directory : MyFirstRepository/

Files to turn in : InitRepository.sh


Initialized empty Git repository in /test/ex00/.git/
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        InitRepository.sh

nothing added to commit but untracked files present (use "git add" to track)


man git init
man git status


Exercise 01 : There is something hidden

Turn-in directory : MyFirstRepository/

Files to turn in : RemoveSomething.sh


Exercise 02 : Suit up !

Turn-in directory : ex02/

Files to turn in : ExamScore100.sh


user.email=someone@somewhere.com
user.name=pisciner
user.email=yourIntraID@student.42Seoul.kr
user.email=yourIntraID


man git config --global




Exercise 03 : 3 match puzzle (x), 3 git-area puzzle (o)

Turn-in directory : ex03/

Files to turn in : ExamScore100.sh



진행중


git status 입력 시 나오는 출력의 항목들 중 수정됨, 삭제됨, 만들어짐, 커밋됨, 커밋안됨, 언트랙드 파일임 등의 항목에 대해서 퍼즐을 맞추듯이 특정 항목(문제에서 예시 제공)들이 잘 나오게끔 하는 문제.

Untracked files: (use "git add ..." to include in what will be committed) test.md

nothing added to commit but untracked files present (use "git add" to track)

// 정답 예시 touch test.md

// 문제 예시 2 On branch master Your branch is up to date with 'origin/master'.

Changes to be committed: (use "git restore --staged ..." to unstage) new file: test.md

// 정답 예시 2 touch test.md git add test.md



## 문제 4. [ .gitignore]
`.gitignore` 에 대해서 공부하는 문제
* 문제 3과 비슷한 형식으로 진행되는데, 이번에는 `git add .` 혹은 `git add *` 을 입력하여도 특정 파일이 스테이징에 올라가지 않도록 하는 문제
soo-bak commented 3 years ago

Exercise 00 : My first repository

Turn-in directory : MyFirstRepository/

Files to turn in : InitRepository.sh


Initialized empty Git repository in /test/ex00/.git/
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        InitRepository.sh

nothing added to commit but untracked files present (use "git add" to track)


man git init
man git status




Exercise 01 : There is something hidden

Turn-in directory : MyFirstRepository/

Files to turn in : RemoveSomething.sh


Exercise 02 : Suit up !

Turn-in directory : ex02/

Files to turn in : ExamScore100.sh


user.email=yourIntraID@student.42Seoul.kr
user.email=yourIntraID


man git config --global




Exercise 03 : 3 match puzzle (x), 3 git-area puzzle (o)

Turn-in directory : ex03/

Files to turn in : WhatIsGoingOn.sh, a, b, c


On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   c

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   a
        deleted:    b

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        WhatIsGoingOn.sh

man git add
man git commit
man git push




Exercise 04 : Never mind!

Turn-in directory : ex04/

Files to turn in : a.c, b.cpp, c.json, YouCanGoWithUs.sh


No commits yet

Untracked files: (use "git add ..." to include in what will be committed) YouCanGoWithUs.sh a.c b.cpp

nothing added to commit but untracked files present (use "git add" to track)


<br>

> *man gitignore*
soo-bak commented 3 years ago

제출 파일 작성내용 (답안) 및 평가지

ex00

git init
git status

ex01

rm -rf .git
git status

ex02

git config --global user.email "yourIntraId@student.42seoul.kr"
git config --global user.name "yourIntraId"

ex03

git add a b
git commit -m "#03 TODO: solve puzzle!"
git add c
rm b
echo a > a
git status

ex04

echo .gitignore > .gitignore
echo c.json >> .gitignore
git status
soo-bak commented 3 years ago

이슈 종료

24 문제 합치기 완료.

25 이슈 분리