합치고 싶은 repo1, repo2가 생겼다고 가정해보자. repo1는 유지하고 싶고, repo2의 파일을 repo1에 옮기고 싶다. 우선 bash를 repo1에서 띄우고 아래 코드를 작성한다. git subtree add --prefix=repo2 https://~~repo2.git main git subtree add --prefix= 까지는 작성이 같다. prefix 내용에 합쳤을 때의 폴더 구조를 작성하는 것 repo2를 적어 넣으면 'repo2/[repo2 repository의 파일들]'의 구조가 된다. 그 다음에 https://~.git은 합치고 싶었던 repo2의 주소를 붙여 넣으면 된다. 그 리포지토리 들어가보면 ' code - HTTPS' 쪽에 복사 버튼이 있다. 뭐 근데 주소 복사해서 ..
바로 본론으로 들어가자면 풀리퀘를 해놓고 수정이 필요했다거나, 그런 부분이 존재한다면 그 부분을 수정한다. 수정한 코드가 하나면 'git add {수정하고싶은 파일}' 을 하면 되긴 하는데 그냥 아래 코드로 진행해도 된다. git add . git commit --amend git push -f origin {pull request 보낸 branch-name} 설명하자면 add, commit, push의 경우 원래 push할 때 진행하던 과정인데, git commit --amend의 경우 제일 최근에 커밋했던 내용을 수정하는 방법이다. 새로 커밋을 하는게 아니라 원래 있던 커밋 내용에 add 했던 파일들을 넣어서 pull requset를 진행하는 방법인 것 그리고 병합 요청한 branch를 push하면 ..
Git에 Push할 때 올라가면 안되는 파일이 있으면 .gitignore 파일을 이용해서 올리지 않게 설정할 수 있다. 기본적으로 프로젝트를 생성할 때 생성해주는 파일이며, 아래 웹에서도 Push하고 싶지 않은 파일들을 설정해서 생성할 수 있다. gitignore.io Create useful .gitignore files for your project www.toptal.com 근데 사용법이나 이런 게 문제가 아니라, 초기에 Push를 한 파일 중 .gitignore를 적용시키고 싶으면 어떻게 할까? 지금부터 설명하는 방법은 터미널에서 사용할 수 있는 방법이다.(사실 가끔 사용하는 데 자주 까먹어서 ㅎ 정리) git rm -r --cached . git add . git commit -m "Apply ..
여느 때와 다름없이 알고리즘 문제를 풀고 있었다. (문제는 [프로그래머스 - 여행경로] 참고) 문제 초반부에서 만약 경로가 [a, b], [b, c], [c, a] 처럼 주어졌다고 하면, a -> b라는 경로들의 방향을 담고 싶다. 하지만 a가 str형이라 인덱스(정수 고정) - 값처럼 사용할 수 없어 리스트를 못 사용했다. 그래서 키(문자 가능) - 값(문자 가능)처럼 dictionary를 사용해서 문제를 풀었다. 나는 아래 코드처럼 사용했다. tickets = [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] t_dict = dict() for i in range(len(tickets)): if tickets..
평소에 알고리즘 풀 때, BFS로만 풀어서 DFS로도 좀 풀어볼까 하다가 예제는 맞는데 자꾸 런타임 에러로 틀려서 검색하면서 찾아보다가 '# dfs 반복 횟수 제한 해제' 라고 주석처리 되어있는게 있길래 한번 넣어봤더니 통과했다. 찾아보니까 파이썬에서는 재귀를 사용할 때 최대 깊이가 기본 1,000회로 설정되어 있다고 한다. 그래서 아래 코드를 사용하면 이 설정이 늘어나게 되는 것. import sys sys.setrecursionlimit(10 ** 9) 이런 식으로 코드를 작성하면 최대 깊이가 10**9로 바뀌게 된다. input은 sys.stdin.readline bfs는 from collections import deque dfs는 sys.setrecursionlimit(10 ** 9) 이런 수준..
super super는 부모 클래스로부터 상속받은 필드나 메서드를 자식 클래스에서 참조하는데 사용하는 변수다. 조금 정리해서 말하자면 자신이 상속받은 부모를 가리키는 참조 변수인 것 this의 경우 필드, 매개변수명이 동일해서 구분하기 위해 사용했다. super는 부모 클래스의 멤버와 자식 클래스의 멤버 명이 같을 경우 사용하여 구별할 수 있다. 이런 식으로 super 참조 변수는 부모 클래스의 멤버에 접근할 수 있게 된다. 아래 예제를 주석과 함께 살펴보자 class Parent { int a = 10; } // Parent 클래스에서 a = 10 선언 class Child extends Parent { // Child 클래스에서 Parent 클래스 상속 -> a = 10을 가져옴 int a = 20;..
this와 this() 자바에서 this는 객체 자기 자신(참조값)을 가리키는 레퍼런스 변수이며, 자신의 객체에 접근하기 위해 사용한다. 주로 필드와 매개변수 명이 동일할 때, 명확한 구분을 위해 사용한다. this() 같은 경우는 같은 클래스 내 생성자가 다른 생성자를 호출할 때 사용한다. 생성자는 매개변수를 다양하게 받아올 수 있는데(오버로딩), this()를 이용하면 중복 코드를 간단하게 할 수 있다. 주의할 점으론 생성자에서만 사용이 가능하며, 반드시 호출하는 곳의 첫 번째 문장에 작성해야 한다. 아래의 Member 클래스 예제를 살펴보자 public class Member { private int id; private String username; private int age; public Me..
앞서 final 키워드에 대한 포스팅을 올렸는데, static과 같이 사용하면 내용이 길어져서 따로 정리하려고 한다. 우선 static의 경우 객체 생성 없이 사용할 수 있는 필드, 메서드를 생성하고자 할 때 사용된다. static으로 선언될 경우 GC가 관여하지 않는 static 메모리 영역에 적재되어 모든 객체가 공유한다. 물론 너무 남발하면 메모리 할당된 채로 남아있어 좋지는 않다. 특징을 간단하게 요약하자면 아래와 같다. 프로그램이 시작할 때 단 한 번만 생성되고 초기화된다. 인스턴스를 생성하지 않고 바로 사용 가능 해당 클래스의 모든 인스턴스 공유 static과 final 일단 제일 큰 특징은 static과 final를 이용하여 상수 정의에 사용한다. public static final doub..