Git

PATerminal은 Git을 필요한 곳에 둡니다. 모든 페인이 자기 저장소의 상태를 보여 주고, Git 창은 커밋, 기록, 브랜치를 다루는 완전한 클라이언트를 제공합니다. 모든 동작은 컴퓨터에 설치된 git으로 실행됩니다.

PATerminal v1.8.3 기준

페인 바의 Git

페인이 저장소 안에 있으면 위쪽 바에 현재 브랜치, 앞선(↑)·뒤처진(↓) 커밋 수, 변경된 파일 수가 표시됩니다. 그 옆에는 다음이 있습니다.

브랜치 이름
브랜치 목록을 엽니다. 로컬 브랜치가 먼저, 원격에만 있는 브랜치가 그다음에 나옵니다. 브랜치를 클릭(또는 Enter)하면 전환합니다. 없는 이름을 입력하고 Enter를 누르면 브랜치를 만들고 전환합니다. 다른 worktree에서 체크아웃된 브랜치는 표시가 붙고 고를 수 없습니다.
Diff
Git 창을 열지 않고 이 페인 폴더의 커밋하지 않은 변경을 엽니다.
Worktree
이 저장소의 worktree를 만듭니다. Worktree를 참고하세요.
Commit
메시지 입력란에 포커스가 간 상태로 Git 창의 파일 상태를 엽니다.
Fetch / Pull / Push
가져올 것이 있으면 Pull이 강조됩니다. upstream이 없으면 원격의 기본 브랜치(예: origin/main)에서 pull하며, 툴팁에 출처가 표시됩니다. Push는 push하지 않은 커밋이 있을 때 나타납니다.

Git 창

툴바에서 Git을 클릭하거나 Cmd/Ctrl+E를 누르면 포커스된 터미널 저장소의 Git 창이 열립니다. 툴바 배지는 변경된 파일 수를 보여 줍니다. Esc, × 버튼, 또는 Cmd/Ctrl+E를 다시 눌러 닫습니다. 가장자리를 드래그해 크기를 바꾸고, 핸들을 더블클릭하면 원래대로 돌아갑니다.

왼쪽에서 파일 상태, 기록, 검색, worktree, 이슈, 풀 리퀘스트를 전환하며, 브랜치(/로 폴더처럼 묶임), 원격, 태그가 나열됩니다. ref를 클릭하면 기록에서 그 커밋을 보여 주고, 브랜치를 더블클릭하면 체크아웃합니다.

변경 사항 확인과 커밋

  1. Git 창을 엽니다. 파일 상태에서 시작하며, 커밋하지 않은 모든 파일이 상태와 줄 수와 함께 나열됩니다.
  2. 파일을 클릭하면 줄 번호가 있는 diff를 볼 수 있습니다. 이번 커밋에 넣지 않을 파일은 체크를 해제합니다.
  3. 커밋 메시지에 메시지를 씁니다. 바로 push하려면 커밋 후 Push에 체크합니다.
  4. Commit을 누르거나 Cmd/Ctrl+Enter를 누릅니다.

모든 변경은 작업 트리 전체의 diff를 큰 뷰어로 엽니다. 여기서는 긴 줄이 줄바꿈되며, 파일 목록의 가장자리를 드래그해 넓힐 수 있습니다.

기록 살펴보기

기록은 모든 로컬·원격 브랜치와 태그에 걸친 커밋 그래프를 그립니다. 커밋을 선택하면 아래에 파일과 패치가 표시됩니다. 검색은 메시지, 작성자, 해시로 걸러 냅니다.

커밋을 우클릭 → 이 커밋으로 되돌리기…를 선택하면 브랜치를 그 커밋으로 리셋합니다. 이후 커밋은 현재 기록에서 빠지고 추적 중인 파일의 커밋하지 않은 변경은 버려지므로(추적하지 않는 파일은 남습니다) 먼저 확인을 요청합니다.

Pull, push, fetch, stash

Pull
브랜치를 전환하지 않고, 현재 브랜치로 pull할 원격 브랜치를 고릅니다.
Push
현재 브랜치를 push하며, 첫 push 때 upstream을 설정합니다.
Fetch
모든 원격에서 업데이트를 가져옵니다.
Stash
추적하지 않는 파일까지 포함해 변경을 stash에 넣습니다(git stash push -u).

Git을 실행할 수 없을 때

컴퓨터 환경 때문에 git이 동작하지 않으면 PATerminal이 원인과 한 줄짜리 해결 명령을 보여 주며, 터미널에 입력(Enter는 직접 누름)이나 복사를 고를 수 있습니다. 동의하지 않은 Xcode 라이선스, 없는 Command Line Tools, 설치되지 않은 Git, 다른 사용자가 소유한 폴더(“dubious ownership”), Windows 긴 경로 제한을 알아봅니다.

아직 해결되지 않았나요?

FAQ를 확인하거나 OS, PATerminal 버전, 시도해 본 내용을 적어 이메일로 문의해 주세요. 모든 메일에 답장해 드립니다.