day 9. git 저장소 만들기

2021. 7. 29. 22:52·강의/부캠 안드로이드 학습정리

배경지식에서 유용한 정보들이 많아서 보고, 링크한것들도 유용해서 여기에서도 링크

http://rogerdudler.github.io/git-guide/index.ko.html

 

git - 간편 안내서 - 어렵지 않아요!

 

rogerdudler.github.io

https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EB%A6%AC%EB%AA%A8%ED%8A%B8-%EC%A0%80%EC%9E%A5%EC%86%8C

 

Git - 리모트 저장소

원격 저장소라 하더라도 로컬 시스템에 위치할 수도 있다. remote'' 저장소라고 이름이 붙어있어도 이 원격 저장소가 사실 같은 로컬 시스템에 존재할 수도 있다. 여기서 remote'' 라는 이름은 반드

git-scm.com

https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EB%82%B4%EB%B6%80-Git-%EA%B0%9C%EC%B2%B4

 

Git - Git 개체

여러분이 사용하는 쉘이 어떤 것인가에 따라 master^{tree} 표현식이 오류를 일으킬 수도 있다. Windows 에서 CMD는 ^ 문자는 이스케이프 기호로 사용한다. ^ 문자를 제대로 사용하려면 git cat-file -p master

git-scm.com

https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EB%82%B4%EB%B6%80-Git-Refs

 

Git - Git Refs

중요한 개체 세 가지는 모두 살펴봤고(Blob, Tree, 커밋) 살펴볼 개체가 하나가 남았다. 태그 개체는 커밋 개체랑 매우 비슷하다. 커밋 개체처럼 누가, 언제 태그를 달았는지 태그 메시지는 무엇이

git-scm.com

 

생각만큼 이번 과제가 많이 힘들었따.. 진짜 첫날부터 이거 하라고 했으면 바로 포기했을듯.

이 이주일 사이에그새 성장한 모양이다. 얼마나 굴렸으면..


명령어를 정규식으로 받으면 좋긴 한데 때론 그냥 split(" ")로 받는게 더 깔끔하고 안정적이고 보기 좋은 것 같다. 너무 정규식만 쓸려고 하지 말자. 그럼 이렇게 할 때 뒤 단어들 합치기

order = readLine()!!.split(" ")

"commit" ->{
                message = ""
                for (i in 1..order.lastIndex) message += "${order[i]} "
                commit.commit(message)
            }

깊은 복사를 하기 위해 cloneable를 상속해서 override clone 하면 된다. data class에도 cloneable된다.

enum class

import java.util.*

data class File(var name: String, var lastEdited: Date, var content: String){
    val fileStatus = {"$name(${content.length})"}
    val fileStatusWithDate = {"${fileStatus()}\t$lastEdited"}
    var status = FileStatus.UNSTAGED
}

data class GitLogFile(val name: String, val logs: List<CommitLog>)

enum class FileStatus{
    UNSTAGED, STAGED, COMMITTED
}

FileStatus안에 UNSTAGED, STAGED, COMMITTED 라는 클래스가 있는것. 그냥 새로운 이름을 짓는걸로 생각했는데 그거 이상인 것 같다. 아님 그냥 상수처럼 쓰던지.

 

reduce

    //log
    private fun printLog() {
        val strLog = curRepos!!.commitLogs.map {
            "commit \"${it.message}\"\n" +
                    it.files
                        .map { f -> f.fileStatusWithDate()}
                        .reduce { acc, s -> "$acc\n$s" }
        }.reduce { acc, s -> "$acc\n$s" }

        println(strLog)
    }

위의 것은 reduce 한게 String list라서 이것들을 reduce로 합친것.

 

해시 고유값

hash = UUID.randomUUID().toString()

 

실제 github에서는 .git 안에 모든 정보가 다 있는듯.

상태정보.. 흐름에 대해 코딩

클래스가 많으면 어쨌든 그 안에서 다 처리하도록 만들 수 있으니까 이 점에선 좋은 듯.

 

결과 내놓고 축약한건 실험 안해도 되겠지 하고 최종으로 내놓았는데 결국 버그 떴음.. 마지막의 마지막까지 꼭 테스트 해보고 최종 commit 하자.

 

'강의 > 부캠 안드로이드 학습정리' 카테고리의 다른 글

day 12. 멀티쓰레드.  (0) 2021.08.04
day 11. 멀티프로세스, 멀티스레드, 우선순위  (0) 2021.08.02
day 8. 코틀린의 함수형 프로그래밍  (0) 2021.07.28
day 7 클래스 상속  (0) 2021.07.27
day 6 xml, html parser 만드는데 너무 어려웠음  (0) 2021.07.27
'강의/부캠 안드로이드 학습정리' 카테고리의 다른 글
  • day 12. 멀티쓰레드.
  • day 11. 멀티프로세스, 멀티스레드, 우선순위
  • day 8. 코틀린의 함수형 프로그래밍
  • day 7 클래스 상속
용나리
용나리
  • 용나리
    티스토리 블로그
    용나리
  • 전체
    오늘
    어제
    • 분류 전체보기 (333)
      • 과거의 것들 (93)
        • AI Tech boostcamp (92)
      • 생각정리(고찰) (2)
      • 기술 글 (0)
      • 코딩테스트 (4)
        • C++ (0)
        • Python (4)
      • CS (121)
        • 컴퓨터 시스템 (4)
        • 코틀린 인 액션 (13)
        • 김영한 스프링 강의 (104)
      • 일지 남기기용 (11)
        • 운동 (10)
      • 개발 배포 해보기 (1)
      • 프로그래밍 언어 및 기타 (32)
        • Spring Boot (9)
        • Python (9)
        • Kotlin (1)
        • Flutter (2)
        • SQL (4)
        • Docker (3)
        • 공통 (4)
      • os (4)
        • Linux (4)
      • 기술 (17)
        • PyTorch (6)
        • Computer Vision (6)
        • NLP (1)
        • 기타 (4)
      • 제품 후기 (0)
      • 게임 (0)
        • Human Resource Machine (0)
      • 강의 (26)
        • fullstackdeeplearning_sprin.. (9)
        • 부캠 안드로이드 학습정리 (17)
      • 개인 메모 (10)
      • IT 기타 (5)
      • 논문 읽기 연습 (5)
        • Computer Vision (1)
        • NLP (0)
        • 공통 (2)
        • 그냥 메모 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬 실행경로
    pip install killed
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
용나리
day 9. git 저장소 만들기
상단으로

티스토리툴바