iOS 환경에서 다른 앱을 활용한 옵시디언 Git 동기화 방법

연결문서

다양한 싱크프로그램으로 pad와 iphone 그리고 pc에서 사용할 수 있습니다.

윈도우에서 옵시디언 Git 동기화 방법

옵시디언(Obsidian)을 Git으로 동기화하면 여러 기기에서 파일을 안전하게 관리하고 버전 관리를 할 수 있습니다. 윈도우 환경에서도 Git을 설치하고 설정하여 옵시디언 파일을 동기화할 수 있습니다. 아래는 윈도우에서 옵시디언을 Git으로 동기화하는 방법입니다.

1. Git에 대한 설명 및 Git 설치

Git은 분산 버전 관리 시스템으로, 파일의 변경 사항을 추적하고 관리할 수 있습니다. 옵시디언에서 작성한 노트와 데이터를 Git을 통해 동기화하면, 여러 기기에서 일관성 있게 작업할 수 있고, 파일의 버전을 관리할 수 있어 매우 유용합니다.

Git 설치 (윈도우)

윈도우에서 Git을 사용하려면 Windows Terminal 또는 Git Bash를 설치해야 합니다. 이 두 툴을 통해 Git 명령어를 실행할 수 있습니다.

  1. Windows Terminal 설치
    Windows Terminal은 Microsoft Store에서 다운로드할 수 있는 앱으로, 다양한 셸(예: PowerShell, WSL 등)을 제공합니다. Git을 사용할 수 있도록 터미널 환경을 설정하려면 Git Bash를 사용해도 되지만, 윈도우 환경에서는 윈도우 터미널이 더 쉽습니다. 고로 Windows Terminal을 설치하는 방법도 설명합니다.

    • Microsoft Store에서 Windows Terminal을 검색하여 설치합니다.
  2. Git Bash 설치
    Git Bash는 Git과 함께 제공되는 쉘 환경으로, Git 명령어를 쉽게 사용할 수 있도록 돕습니다.

    • Git 공식 사이트에서 윈도우용 Git을 다운로드합니다.
    • 설치 과정에서 Git Bash를 설치할 옵션을 선택합니다.
    • 설치가 완료되면 Git Bash를 열어 Git 명령어를 사용할 수 있습니다.

설치가 완료된 후, 아래 명령어로 Git이 제대로 설치되었는지 확인할 수 있습니다:

git --version

버전 정보가 출력되면 Git이 정상적으로 설치된 것입니다.

2. 옵시디언 폴더에 Git 저장소 생성

옵시디언 파일을 Git으로 동기화하려면, 옵시디언의 데이터가 저장된 폴더에서 Git 저장소를 초기화해야 합니다.

  1. Git Bash 또는 Windows Terminal을 열고, 옵시디언의 데이터 폴더로 이동합니다. 예를 들어, 옵시디언 파일이 C:\Users\Username\Documents\Obsidian에 저장되어 있다면:
cd /c/Users/Username/Documents/Obsidian
  1. Git 저장소를 초기화합니다:
git init

이제 옵시디언 폴더가 Git 저장소로 변환되었습니다.

혹은 실제 그 폴더로 들어가 빈 공간에 마우스 오른쪽키를 눌러 '터미널에서 열기'를 클릭하면 바로 그 폴더에서 터미널 명령어를 실행할 수 있습니다. 여기선 바로 git init을 해주면 됩니다.

3. GitHub 가입 및 비공개 원격 저장소 생성

옵시디언 파일을 원격 저장소와 동기화하려면 GitHub에서 비공개 원격 저장소를 생성해야 합니다.

  1. GitHub에 가입 후 로그인합니다.
  2. 상단 메뉴에서 + 버튼을 클릭하고 New repository를 선택합니다.
  3. 저장소 이름을 입력하고, Private을 선택하여 비공개 저장소로 설정합니다.
  4. Create repository 버튼을 클릭하여 원격 저장소를 생성합니다.

생성된 저장소의 URL을 확인하고, 해당 URL을 Git 저장소와 연결해야 합니다.

4. GitHub 원격 저장소 연결

옵시디언 폴더의 로컬 Git 저장소와 GitHub 원격 저장소를 연결하려면, 아래 명령어를 입력합니다.

git remote add origin https://github.com/YourUsername/YourRepository.git

만약 GitHub 사용자 이름이 segyehan이고, 생성한 저장소 이름이 obsidian이라면, 아래와 같은 명령어를 입력해야 합니다.

git remote add origin https://github.com/segyehan/obsidian.git

이 명령어에서 segyehan은 GitHub 사용자 이름, obsidian은 원격 저장소 이름입니다. 이렇게 입력하면 로컬 저장소와 GitHub 원격 저장소가 연결됩니다.

5. GitHub 원격 저장소로 푸시

이제 옵시디언의 파일을 GitHub 원격 저장소로 푸시할 수 있습니다. 먼저 변경 사항을 스테이지하고 커밋한 후 푸시합니다.

  1. 변경 사항을 스테이지합니다:
git add .
  1. 커밋을 작성합니다:
git commit -m "Initial commit"
  1. 원격 저장소로 푸시합니다:
git push origin main

6. 모바일에서 옵시디언 파일 다운로드

옵시디언 모바일 앱 설치

모바일 기기에서 옵시디언을 사용하려면 우선 옵시디언 앱을 설치해야 합니다. 옵시디언은 iOSAndroid 모두에서 지원되며, 앱 스토어에서 쉽게 다운로드할 수 있습니다.

  1. iOS (아이폰 / 아이패드)
    • App Store에서 Obsidian을 검색하여 다운로드합니다.
  2. Android
    • Google Play Store에서 Obsidian을 검색하여 다운로드합니다.

설치 후 icloud연동 없는 옵시디언 볼트를 새로 생성합니다. obsidian git 플러그인으로도 git 연동이 가능은 하지만, 추가의 과정이 필요합니다. 또한 외부 프로그램을 활용하면 자동화 기능을 활용해 좀더 편하게 pull과 push가 가능합니다.

Working copy

윈도우에서 Git을 설정한 후, 모바일 기기에서 옵시디언 파일을 동기화하려면 Working Copy 앱을 사용할 수 있습니다. Working Copy는 GitHub과 쉽게 연동되어 Git을 통한 파일 동기화를 지원합니다. push를 하려면 유료버전을 구매해야 합니다. 그에반해 a-shell은 무료입니다. 그러나 working copy보다는 어렵습니다.

  1. Working Copy를 iOS App Store에서 다운로드하고 설치합니다.
  2. GitHub에서 생성한 원격 저장소를 Working Copy에 연결합니다.(https로)
  3. 옵시디언 폴더와 연결하여 모바일에서도 파일을 동기화하고 작업할 수 있습니다.

a-shell

  1. a-shell을 iOS App Store에서 다운로드하고 설치합니다.
  2. GitHub에서 생성한 원격 저장소를 a-shell로 연결합니다.
  3. a-shell 명령어는 git이 아닌 lg2명령어로 실행됩니다.
  4. 옵시디언 폴더와 연결하여 모바일에서도 파일을 동기화하고 작업할 수 있습니다.

단축어를 이용한 자동화

옵시디언과 Working Copy 혹은 a-shell은 모두 자동화 기능을 지원합니다. 이를 활용하면 Git PullPush를 자동으로 실행할 수 있습니다. 아래는 이를 위한 단축어 설정과 작업 흐름입니다.

1. 자동화 단축어 생성

두 애플리케이션 모두 Git과 관련된 작업을 자동화하는 단축어를 생성할 수 있습니다.

flowchart TD
    A[옵시디언 단축어 실행] --> B[Git Pull 실행]
    B --> C[옵시디언 실행 후 최신 상태 반영]
    C --> D[옵시디언 종료]
    D --> E[Git Push 유무 질문]
    E --> F[Git Push 실행]
    F --> G[파일 동기화 완료]
  • Pull 후 옵시디언 실행

    1. Pull을 실행하는 단축어를 생성합니다.
    2. 이 단축어가 성공적으로 실행되면, 옵시디언 앱이 자동으로 실행됩니다.
    3. 이 단축어는 홈 화면에 아이콘을 배치하여 쉽게 사용할 수 있도록 설정합니다.
    4. 옵시디언 실행 후 항상 최신 상태의 데이터를 로딩할 수 있게 됩니다.
  • Push 전 알림

    1. 옵시디언을 종료할 때 Push할지 알림을 통해 묻게 됩니다.
    2. Push가 필요하면, 알림을 클릭하여 Push 작업을 실행합니다.
    3. 이를 통해 다른 기기에서 최신 파일을 동기화할 수 있습니다.

충돌 방지

.gitattributes.gitignore 파일을 사용하여 Git이 특정 파일을 어떻게 처리할지 정의할 수 있습니다. 예를 들어, .obsidian 폴더의 설정 파일이나 워크스페이스 정보는 각 기기에서 다르게 설정될 수 있기 때문에, 이를 Git에서 관리하지 않도록 .gitignore에 추가하여 충돌을 방지할 수 있습니다. 또한, .gitattributes를 통해 텍스트 파일의 줄 바꿈 처리를 자동으로 처리할 수 있어, 기기 간 차이로 인한 불필요한 충돌을 방지할 수 있습니다.

.gitatrributes

# Auto detect text files and perform LF normalization
*        text=auto

*.cs     text diff=csharp
*.java   text diff=java
*.html   text diff=html
*.css    text
*.js     text
*.sql    text


*.csproj text merge=union
*.sln    text merge=union eol=crlf
*.md merge=union

*.docx   diff=astextplain
*.DOCX   diff=astextplain

# absolute paths are ok, as are globs
/**/postinst* text eol-lf

# paths that don't start with / are treated relative to the .gitattributes folder
relative/path/*.txt text eol-lf

유니온(Union) 전략은 Git에서 파일 병합(Merge) 방식 중 하나로, 충돌을 최소화하고 여러 기기 또는 사용자가 작업한 내용을 통합하려는 전략입니다. 이 전략을 사용하면, 충돌이 발생한 경우 Git이 자동으로 두 가지 변경 사항을 합치는 방식으로 병합을 처리합니다. merge=union병합 충돌을 해결할 때 자동으로 두 파일의 내용을 병합하는 방식입니다. 그러나 실제 충돌이 아예 발생하지 않는 건 아닙니다. 사람이 같은 라인이나 근처 라인을 수정한 경우입니다. 이 경우 Git이 변경 사항을 자동으로 병합하려 시도하지만, 여전히 해결되지 않은 충돌이 남을 수 있습니다. 이러한 경우에 충돌을 수동으로 해결해야 합니다.

.gitignore

.DS_Store obsidian/workspace.json
.obsidian/workspace.json
.obsidian/workspace-mobile.json

옵시디언에서 사용하는 workspace.json 파일은 현재 열려 있는 노트레이아웃 등 사용자의 작업 환경에 관한 정보가 담겨 있습니다. 이러한 설정은 다른 기기에서 옵시디언을 사용하는 사용자에게는 전혀 의미가 없는 정보이거나, 작업 환경을 망칠 수 있는 설정일 수 있습니다.

  • 이미 푸시된 파일은 gitignore가 적용되지 않습니다.
  • 이미 업로드된 파일은 수동으로 제거한 후 .gitignore에 추가하여, 이후에는 추적되지 않도록 설정할 수 있습니다.

결론

윈도우에서 옵시디언을 Git으로 동기화하는 과정은 여러 기기에서 안정적으로 작업을 이어 나가고, 버전 관리가 가능하게 해줍니다. Git을 설치하고, 옵시디언 폴더를 Git 저장소로 초기화한 후, GitHub와 연결하여 원격 저장소를 설정하는 것부터 시작해, 모바일에서 Working Copya-shell을 활용하여 파일을 동기화할 수 있습니다.

자동화 기능을 활용한 Git PullPush의 단축어 설정을 통해, 최신 데이터를 손쉽게 동기화하고, 푸시 전에 알림을 받는 등 편리하게 작업할 수 있습니다. 또한, 충돌 방지를 위한 .gitignore.gitattributes 파일을 활용해 기기 간 동기화 문제를 해결할 수 있습니다.

이러한 설정과 과정들이 조금 복잡해 보일 수 있지만, 한 번만 설정하면, 여러 기기에서 옵시디언을 사용하는데 있어 매우 효율적이고 안정적인 환경을 제공할 수 있습니다. 이제 윈도우와 모바일에서 옵시디언을 자유롭게 활용하며, 버전 관리와 파일 동기화의 이점을 극대화할 수 있습니다.

참조

댓글 쓰기