Closed mtak0235 closed 3 years ago
git init
실습해보고, .git
폴더의 역할을 알 수 있게 하는 문제
On branch master ~
으로 시작하는 출력이 나오는지 확인 되면 정답fatal: not a git repository (or any of the parent directories): .git
라는 출력이 나오면 정답.
// a 예시
git init
git status
// b 예시
rm -rf ./.git
git status
git config
에 관한 다양한 개념들 공부하는 문제
// 테스트 파일 내용 예시
git config --list | grep user > pisciner
git config --list | grep user > cardet
diff pisciner cardet
git config --global -e
혹은 git config --global user.name "jinchoi"
등을 통해서 git 에 등록된 user 의 email 과 name 을 pisciner
(가칭 및 상세 내용 추후 정하기) 에서 cardet
(가칭 및 상세 내용 추후 정하기) 으로 변경하는 개념에 대해 공부하는 문제임git status
입력 시 나오는 출력의 항목들 중 수정됨, 삭제됨, 만들어짐, 커밋됨, 커밋안됨, 언트랙드 파일임 등의 항목에 대해서 퍼즐을 맞추듯이 특정 항목(문제에서 예시 제공)들이 잘 나오게끔 하는 문제.
git add
, git commit
, git -rm --cached
git restore
및 레포지토리 안에 있는 파일들을 삭제 혹은 추가하면서, 문제에서 요구하는 여러가지 git status 예시들에 맞게 명령어들을 조합해야함
// 문제 예시
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add
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
// 정답 예시 2 touch test.md git add test.md
## 문제 4. [ .gitignore]
`.gitignore` 에 대해서 공부하는 문제
* 문제 3과 비슷한 형식으로 진행되는데, 이번에는 `git add .` 혹은 `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...]
깃허브아이디와 personal access 토큰을 생성후
private 저장소를 만들고 그저장소에 커밋한 내용을 푸시하는 문제
$ git remote add origin git@github.com:lainyzine/git-init.git
$ git branch -M main
$ git push -u origin main
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
git reset 명령은 아래의 옵션과 관련해서 주의하여 사용해야 한다
만약 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌리고 싶으면, 아래의 명령어를 사용한다. 단, 이 명령을 사용하면 원격 저장소에 있는 마지막 commit 이후의 워킹 디렉터리와 add했던 파일들이 모두 사라지므로 주의해야 한다
// 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌린다.
$ git reset --hard HEAD
git push한 내용을 취소하는 문제
정답
// 가장 최근의 commit을 취소 (기본 옵션: --mixed)
$ git reset HEAD^
// Reflog(브랜치와 HEAD가 지난 몇 달 동안에 가리켰었던 커밋) 목록 확인
$ git reflog 또는 $ git log -g
// 원하는 시점으로 워킹 디렉터리를 되돌린다.
$ git reset HEAD@{number} 또는 $ git reset [commit id]
$ git commit -m "Write commit messages"
$ git push origin [branch name] -f
또는
$ git push origin +[branch name]
git stash와 git clean 을 연습해보는 문제
추가예정.....
출처 https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html
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
fatal: not a git repository (or any of the parent directories: .git)
git config --list
입력 시 email과 name이 출력됩니다.
user.email=someone@somewhere.com
user.name=pisciner
user.email=yourIntraID@student.42Seoul.kr
user.email=yourIntraID
man git config --global
진행중
git status
입력 시 나오는 출력의 항목들 중 수정됨, 삭제됨, 만들어짐, 커밋됨, 커밋안됨, 언트랙드 파일임 등의 항목에 대해서 퍼즐을 맞추듯이 특정 항목(문제에서 예시 제공)들이 잘 나오게끔 하는 문제.
git add
, git commit
, git -rm --cached
git restore
및 레포지토리 안에 있는 파일들을 삭제 혹은 추가하면서, 문제에서 요구하는 여러가지 git status 예시들에 맞게 명령어들을 조합해야함
// 문제 예시
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add
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
// 정답 예시 2 touch test.md git add test.md
## 문제 4. [ .gitignore]
`.gitignore` 에 대해서 공부하는 문제
* 문제 3과 비슷한 형식으로 진행되는데, 이번에는 `git add .` 혹은 `git add *` 을 입력하여도 특정 파일이 스테이징에 올라가지 않도록 하는 문제
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
fatal: not a git repository (or any of the parent directories: .git)
ex02/ 폴더를 생성 후 해당 폴더를 repository로 만드세요.
터미널에 git config --list
입력 시 email과 name이 출력됩니다.
예시 :
user.email=someone@somewhere.com
user.name=pisciner
등록된 email과 name을 다음과 같이 바꾸는 명령어를 작성하여 ExamScore100.sh 에 작성하세요.
user.email=yourIntraID@student.42Seoul.kr
user.email=yourIntraID
man git config --global
a
, b
, c
, WhatIsGoingOn.sh
WhatIsGoingOn.sh
파일을 실행하면 다음과 같은 출력 결과가 나오도록 내용을 작성하세요."#03 TODO: solve puzzle!"
이어야 합니다.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
a.c
, b,cpp
, c.json
, YouCanGoWithUs.sh
YouCanGoWithUs.sh
파일을 실행하면 다음과 같은 출력 결과가 나오도록 내용을 작성하세요.
On branch master
No commits yet
Untracked files:
(use "git add
nothing added to commit but untracked files present (use "git add" to track)
<br>
> *man gitignore*
제출 파일 작성내용 (답안) 및 평가지
ex00
git init
git status
git
을 사용하는 이유에 대해서 설명할 수 있나요?
repository
란 무엇인지 설명할 수 있나요?
ex01
rm -rf .git
git status
.git
폴더의 역할이 무엇인지 설명할 수 있나요?
ex02
git config --global user.email "yourIntraId@student.42seoul.kr"
git config --global user.name "yourIntraId"
user
의 email
과 name
을 설정하는 이유에 대해서 설명할 수 있나요?
ex03
git add a b
git commit -m "#03 TODO: solve puzzle!"
git add c
rm b
echo a > a
git status
git add
의 기능에 대하여 설명할 수 있나요?
git commit
의 기능에 대하여 설명할 수 있나요?
git push
의 기능에 대하여 설명할 수 있나요?
ex04
echo .gitignore > .gitignore
echo c.json >> .gitignore
git status
.gitignore
의 역할에 대하여 설명할 수 있나요?
이슈 종료
Git init, remote, add commit push 옵션 각 단계별 git status changes, git diff 마지막에 commit, push, add 취소 방법 Git log로 확인 수정한 파일을 복구하고 싶다. Git stash
이슈 트래킹 방법 커밋 로그에 #이슈 번호 하기 Project 칸반보드 관리