Bandit Level 29 → Level 30 풀(git branch)

  • by

Level Goal

There is a git repository at ssh://bandit29-git@localhost/home/bandit29-git/repo. The password for the user bandit29-git is the same as for the user bandit29.

Clone the repository and find the password for the next level.

How to

level goal 설명은 이전과 동일합니다.

리포지토리에서 복제합시다.

git clone ssh://bandit29-git@localhost:2220/home/bandit29-git/repo


repo가 ​​잘 복제되었습니다.

안에 들어가 README.md 파일을 읽어 보았지만, 기대하지 않았지만 역시 별로 없었다.


지난번처럼 git log를 하면 단서가 나올까?


단서가 보이지 않았다.

커밋이 두 가지 있지만,

두 커밋 중 아래의 초기 커밋은 Git 리포지토리에 처음 커밋되었음을 의미합니다.

즉, README.md 파일을 최초로 작성한 커밋으로, bandit30 패스워드는 no passwords in production!
그대로일 것이다.


실제로 두 번째 커밋을 git show 명령으로 확인하십시오 … README.md의 내용 만 볼 수 있습니다.

두 커밋 중 위의 커밋이 마지막으로 변경한 커밋이지만 로그에서 나온 것처럼 username 만 수정했습니다.

git show에서 확인한 결과


예… username을 bandit29에서 bandit30으로 변경한 것만 알았습니다.

~~ 여기서 막힘~~

다시 왔다니? 상태.

git를 더 파내야 하는 것 같고, 저것 이것 늦게 branch를 알아내야 하는 것을 알았다.

git branch에 대해서는 아래 블로그를 가장 참고했다.

쉽게 잘 나옵니다.

누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완전히 이용해보자~ Backlog

누구나 쉽게 알 수 있는 Git에 입문된 것을 환영합니다.

Git을 사용하여 버전 관리를 할 수 있도록 함께 공부하세요!

backlog.com

간단히 정리하면

Git branch는, repository로부터 각 태스크를 분리해 관리하는 기능. 브랜치를 사용하면 다양한 작업을 동시에 진행하면서 각 작업의 변경 사항을 개별적으로 관리할 수 있습니다.

주로 여러 개발자가 동시에 작업하거나 하나의 작업을 여러 단계로 나누어 작업할 때 사용하는 기능입니다.

버그를 수정하거나 새로운 기능을 추가하는 데에도 유용합니다.

이제 branch를 확인해 보겠습니다.

git branch


local branch는 HEAD입니다.

git branch 명령에 첨부된 -r 옵션은 원격 브랜치를 나타냅니다.

원격 git repository에서 현재 사용 가능한 브랜치 목록을 표시합니다.

그건 그렇고, git branch -a는 로컬과 원격 브랜치를 모두 볼 수 있습니다.

위에서 local branch는 HEAD인데, 여기에는 아무것도 없었기 때문에, 다른 브랜치를 보면 좋다고 생각한다.

HEAD 바로 아래의 dev에서 확인해 봅시다.

브랜치를 전환하는 명령은 branch checkout입니다.

branch checkout origin/dev


git branch를 칠 때 branch가 origin / dev로 바뀐 것을 볼 수 있습니다.

이제 이 브랜치에서 로그를 확인해 보겠습니다.


커밋이 4개 떠오르지만,

맨 아래의 initial commit of README.md와 그 위의 fix username은 조금 HEAD 브랜치에서 본 커밋과 별로 변하지 않는 것 같다.

위에서 두 번째 커밋은 gifascii(GIF 이미지를 ASCII 문자로 변환하는 명령줄 도구)를 추가했다고 한다.

암만 봐도 가장 최근 커밋한 내용 속에 비밀번호 정보가 있는 것 같다.

add data needed for development가 아닙니다.

README.md에서 password production에 없어도 좋으니까 development에 관련된 커밋에 있는 것은 아닐까…

따라서 최상위 커밋을 보았습니다.

git show


예상대로 비밀번호가 나왔다.

끝~