Về trang Apps

Ứng dụng macOS · Git client

SourceDeck

Git client native cho macOS dành cho việc hằng ngày: stage từng dòng, viết commit có cấu trúc và xem mọi repository trên một màn hình.

v1.0.5Cập nhật 28 tháng 10, 2026macOSMiễn phí

macOS 14+ · Universal · 7,1 MB · dkb-source-control_1.0.5_universal.dmg

  • git 2.30 trở lên: bản đi kèm Xcode hoặc Command Line Tools (xcode-select --install) là đủ

SourceDeck là ứng dụng cho máy Mac. Hãy mở trang này trên máy Mac để tải về.

Cài đặt trong 3 bước

  1. Mở dkb-source-control_1.0.5_universal.dmg rồi kéo SourceDeck vào thư mục Applications trong cửa sổ đó.
  2. Mở SourceDeck. Lần đầu, macOS sẽ chặn với thông báo “SourceDeck” chưa được mở: bấm Xong.
  3. Vào Cài đặt hệ thống › Quyền riêng tư & Bảo mật, cuộn xuống và bấm Vẫn mở cạnh dòng báo về SourceDeck, rồi xác nhận bằng Vẫn mở và mật khẩu máy.
Hoặc, sau bước 1, chạy lệnh này trong Terminal thay cho bước 2 và 3:
xattr -dr com.apple.quarantine "/Applications/SourceDeck.app"
  • Cả file, từng hunk hay từng dòng
  • Tô sáng chữ thay đổi
  • Cập nhật theo thay đổi từ app khác trong vòng một giây
SourceDeck: Stage đúng phần bạn muốnSourceDeck: Stage đúng phần bạn muốn

Soạn commit

Message đúng định dạng, kiểm tra ngay khi gõ

Chọn keyword rồi viết chi tiết dạng dàn ý: Return thêm dòng, Tab và Shift-Tab đổi cấp. Phần xem trước hiện đúng từng byte git sẽ nhận, và khi có gì sai, nút Commit chuyển xám kèm lý do ngay bên dưới.

  • Dàn ý hoặc văn bản thô, xem trước trực tiếp
  • Dòng trống và sai cấu trúc chặn commit; chữ không phải tiếng Anh chỉ cảnh báo
  • Nháp giữ riêng cho từng repository, kể cả khi mở lại app
SourceDeck: Message đúng định dạng, kiểm tra ngay khi gõSourceDeck: Message đúng định dạng, kiểm tra ngay khi gõ

Kiểm tra secret

Không để lọt secret vào commit

Trước mỗi lần commit, các thay đổi đã stage được kiểm tra: file .env, private key, file ký và cấu hình cục bộ theo tên, API key, token và mật khẩu trong các dòng thêm vào. Kết quả được liệt kê với giá trị đã che, và mặc định là bỏ stage.

  • 14 quy tắc trên tên file và dòng thêm vào
  • File trông như secret được tô màu trước cả khi stage
  • Có nút Commit Anyway, nhưng không bao giờ là mặc định
SourceDeck: Không để lọt secret vào commitSourceDeck: Không để lọt secret vào commit

Lịch sử

Đọc từng commit, từng file

200 commit mỗi lần, branch, branch remote và tag được đánh dấu theo loại. Tìm theo message, tác giả hoặc đường dẫn, mở một commit để xem đầy đủ message và các file đã đổi, dạng danh sách hoặc cây thư mục, cùng diff của từng file.

  • Lịch sử của mọi branch, hay của một file kể cả khi đổi tên
  • Sao chép SHA hoặc message, mở commit trên GitHub
  • Dùng lại message trong khung soạn commit
SourceDeck: Đọc từng commit, từng fileSourceDeck: Đọc từng commit, từng file

Fetch, pull và push

Khi git lỗi, bạn biết vì sao

Fetch, pull và push chạy bằng git có sẵn trên máy, với chính credential và hook của bạn. Khi lỗi, app hiện nguyên văn output của git kèm một câu giải thích, và log giữ lại mọi lệnh cùng thời gian chạy. Danh sách file có thể xem dạng cây thư mục, mỗi thư mục một ô đánh dấu.

  • Branch chưa publish được hỏi trước lần push đầu tiên
  • Pull chỉ fast-forward, hoặc rebase nếu bạn chọn
  • Chưa lưu tài khoản? Đăng nhập ngay trong app, git giữ nó trong Keychain
SourceDeck: Khi git lỗi, bạn biết vì saoSourceDeck: Khi git lỗi, bạn biết vì sao

Dashboard

Mọi repository trên một màn hình

Repository nào có thay đổi, cái nào đang ahead hay behind, cái nào đang merge dở. Mỗi thẻ hiện branch, số file đã stage, đã đổi và mới, cùng commit gần nhất; làm mới hoặc fetch tất cả bằng một cú bấm.

  • Sidebar đếm số file chưa commit, có màu theo trạng thái
  • Thêm bằng cách clone từ URL, chọn thư mục hoặc quét thư mục
  • Tự động fetch nếu muốn
SourceDeck: Mọi repository trên một màn hìnhSourceDeck: Mọi repository trên một màn hình

Ngoài ra còn có

  • Hoàn tác từ Lịch sử: revert một commit, hoặc reset branch về commit đó (Soft, Mixed hoặc Hard)
  • Checkout, tạo branch, tạo tag hay cherry-pick bất kỳ commit nào ngay từ menu của nó
  • Lịch sử của từng file kể cả khi đổi tên, blame cho từng dòng, so sánh, mở hoặc khôi phục phiên bản cũ
  • Branch: chuyển branch (stash thay đổi trước nếu bạn đồng ý), tạo, merge, đổi tên, xoá branch đã merge; tạo, push và xoá tag
  • Stash: xem nội dung (cả file untracked), apply, pop và drop
  • Clone từ URL HTTPS, SSH hoặc đường dẫn cục bộ; đăng nhập remote HTTPS ngay trong app
  • Ưu tiên bàn phím: ⌘1 đến ⌘3 cho các tab, Space để stage, ⌘↩ để commit, ⇧⌘P để push
  • Không xoá gì khi chưa xác nhận kèm tên file; file mới bị huỷ được chuyển vào Thùng rác
  • Không force push, không git clean; hard reset chỉ có qua Reset › Hard, hỏi lại hai lần và stash mọi thay đổi trước; hook luôn chạy
  • Merge, cherry-pick, revert hoặc rebase đang dở có nút Abort và mở trong Sourcetree; Open In còn mở được Finder, Terminal và trình soạn thảo
  • Avatar cho repository, giao diện sáng, tối hoặc theo hệ thống, tiếng Anh và tiếng Việt, cập nhật qua Sparkle
  • macOS 14 trở lên, Apple silicon hoặc Intel; git 2.30 trở lên

Giới thiệu

SourceDeck là Git client native cho macOS dành cho những việc bạn làm mỗi ngày: xem file nào đã thay đổi, stage cả file, từng hunk hay từng dòng, đọc diff, commit, push, pull và xem lịch sử, với mọi repository trên cùng một dashboard. App chạy chính git có sẵn trên máy, nên .gitconfig, quy tắc ignore, hook và thông tin đăng nhập lưu trong Keychain đều áp dụng y như khi dùng Terminal. App miễn phí và mã nguồn mở theo giấy phép MIT.

Tính năng chính

  • Một dashboard cho mọi repository: branch, số commit cần push và pull, số file đã stage, đã sửa và file mới, commit gần nhất; refresh hoặc fetch tất cả cùng lúc, có thể bật tự động fetch
  • Working Copy: Staged và Changes dạng danh sách hoặc cây thư mục, checkbox cho từng file và từng thư mục, file trông giống bí mật được tô đỏ, tự cập nhật trong vòng một giây khi file được sửa từ app khác
  • Diff thao tác được: stage, unstage hoặc huỷ cả hunk hay chỉ những dòng bạn chọn, phần chữ thay đổi trong dòng được tô sáng
  • Commit message có cấu trúc: dựng định dạng + Keyword + / - detail / + sub-detail từ outline, xem trước đúng nội dung sẽ gửi, biết rõ vì sao nút Commit đang mờ; bản nháp được giữ riêng cho từng repository
  • Kiểm tra trước mỗi lần commit: file .env, private key và API key trong các dòng thêm mới được liệt kê trước khi commit, mặc định là bỏ stage chúng
  • Lịch sử 200 commit mỗi lần kèm graph các branch và merge, cho một branch hoặc tất cả, tìm theo message, tác giả hoặc đường dẫn; lịch sử của từng file theo cả khi đổi tên, blame, và so sánh, mở hoặc khôi phục phiên bản cũ
  • Menu của commit: checkout, tạo branch hoặc tag, cherry-pick, revert, hoặc reset branch về commit đó (Soft, Mixed, hoặc Hard sau khi stash mọi thay đổi)
  • Branch, tag và stash: chuyển branch (stash trước nếu bạn đồng ý), tạo mới, merge vào branch hiện tại, đổi tên, xoá branch đã merge; tạo, push và xoá tag; xem nội dung stash, apply, pop và drop
  • Fetch, pull, push kèm nguyên văn output của git và một câu giải thích cho mỗi lỗi; clone repository từ URL HTTPS hoặc SSH
  • Đăng nhập khi remote HTTPS cần tài khoản: credential helper của git lưu vào Keychain, Settings › Tài khoản cho biết đang đăng nhập host nào
  • Ưu tiên bàn phím: ⌘0 đến ⌘3 chuyển màn hình, Space để stage, ⌘⏎ để commit, ⇧⌘P để push
  • Avatar cho repository: chữ cái đầu của tên trên nền xám như danh bạ, hoặc ảnh hay logo bạn chọn
  • Giao diện sáng, tối hoặc theo hệ thống, tiếng Anh và tiếng Việt, tự cập nhật bằng Sparkle

An toàn ngay từ thiết kế

  • Không bỏ đi thứ gì mà không hỏi lại kèm tên file; file mới bị huỷ được chuyển vào Thùng rác
  • Không force push, không git clean, không branch -D; hard reset chỉ có qua Reset › Hard, hỏi lại hai lần và stash mọi thay đổi trước
  • Hook luôn được chạy, và git không bao giờ đứng chờ nhập mật khẩu: app hỏi thay và chuyển tài khoản cho git
  • Không có gì rời khỏi máy ngoài những gì git gửi lên remote của bạn và lần kiểm tra cập nhật của Sparkle

Yêu cầu và giới hạn

  • macOS 14 Sonoma trở lên, Apple Silicon hoặc Intel
  • git 2.30 trở lên: bản đi kèm Xcode hoặc Command Line Tools (xcode-select --install) là đủ
  • Chưa có rebase và trình giải conflict; khi đang merge, cherry-pick, revert hoặc rebase dở, app cho phép huỷ, hoặc mở repository bằng Git client khác

Lưu ý

  • SourceDeck có tên DKB Source Control đến hết phiên bản 1.0.4. Đây vẫn là cùng một app, nên cập nhật giữ nguyên danh sách repository, bản nháp và cài đặt
  • Sau khi cập nhật, app trong thư mục Applications vẫn giữ tên file cũ là DKB Source Control; bản tải mới có tên SourceDeck

Lịch sử phiên bản

Chỉ có thể tải phiên bản mới nhất. Các phiên bản cũ được liệt kê để tham khảo.

  1. v1.0.5Mới nhất

    Thay đổi

    • DKB Source Control nay có tên SourceDeck và là mã nguồn mở theo giấy phép MIT: github.com/dangkhoabach/SourceDeck
    • Danh sách repository, bản nháp và cài đặt của bạn được giữ nguyên. Sau bản cập nhật này, app trong thư mục Applications vẫn giữ tên file cũ là DKB Source Control

    Cải tiến

    • Output của git được đọc ngay khi có thay vì giữ một luồng hệ thống cho mỗi lệnh, nên thời gian chờ tối đa luôn chính xác khi nhiều lệnh git chạy cùng lúc
  2. v1.0.4

    Biết ngay khi remote có commit mới

    -Commit sắp về trong Lịch sử: khi branch đang thiếu commit so với remote, lịch sử của branch hiện thêm các commit mà pull sẽ mang về. + Mỗi commit đó có dấu mũi tên và nằm ở lane riêng trên graph, cạnh nhãn branch remote. + Không có Revert và Cherry-pick trên các commit này.

    • Tự fetch ngầm: khi bạn mở một repo hoặc quay lại app, nếu lần fetch gần nhất đã quá 5 phút thì app tự fetch ngầm. Số commit cần pull và push luôn mới mà không phải bấm Fetch. App không bao giờ hỏi đăng nhập, và nếu fetch lỗi (ví dụ khi offline) thì 5 phút sau mới thử lại.
    • Thời điểm fetch gần nhất: "Đã fetch 5 phút trước" hoặc "Chưa fetch" hiện cạnh tên branch ở Working Copy và trên từng thẻ Dashboard. Fetch từ Terminal hay app khác cũng được tính.
    • Số commit trên nút Pull và Push: nút trên thanh công cụ cho biết pull sẽ mang về bao nhiêu commit và push sẽ đẩy lên bao nhiêu.
  3. v1.0.3

    Có gì mới

    • Commit graph trong Lịch sử: mỗi commit nằm trên một làn màu, có đường nối tới commit cha, nên dễ theo dõi branch và merge; commit hiện tại có vòng tròn đánh dấu
    • Mục Tất cả branch trong bộ chọn branch của Lịch sử: mọi branch local, remote và tag trong cùng một danh sách, kể cả branch chưa merge
    • Graph được ẩn khi tìm kiếm hoặc khi xem lịch sử một file, vì lúc đó danh sách không đủ mọi commit

    Cải thiện

    • Avatar repository dùng chữ cái trắng trên nền xám như Danh bạ, sidebar gọn mắt hơn; ảnh hoặc logo bạn đã chọn vẫn giữ nguyên
  4. v1.0.2

    Có gì mới

    • Hoàn tác commit: chuột phải vào commit trong Lịch sử để Revert, hoặc Reset branch về commit đó (Soft, Mixed hoặc Hard); Hard hỏi lại hai lần và tự stash thay đổi chưa commit trước
    • Lịch sử file: chuột phải vào file để xem mọi commit đã thay đổi nó, kể cả khi file đã đổi tên
    • Blame: xem ai sửa từng dòng của file, và chuyển tới commit đó
    • Phiên bản cũ của file: so sánh với Working Copy, mở, lưu hoặc khôi phục
    • Thêm vào menu commit: checkout, tạo branch hoặc tag tại commit, cherry-pick từ branch khác; Lịch sử giờ xem được của mọi branch
    • Branch và tag: merge một branch vào branch hiện tại, đổi tên branch; tạo, push và xoá tag
    • Stash: xem nội dung một stash (cả file untracked), và Apply mà vẫn giữ stash
    • Avatar cho repository: chữ cái đầu của tên trên một màu riêng, hoặc ảnh hay logo bạn chọn

    Cải tiến

    • Trong Lịch sử, mã commit ngắn nằm trong badge ở đầu mỗi dòng
    • Khi tải dùng skeleton thay cho spinner, và nội dung cũ không còn hiện trong lúc chờ nội dung mới

    Đã sửa

    • Trên macOS 26, danh sách file và ô commit message ở Working Copy không còn hụt trước vạch chia
  5. v1.0.1

    Bản phát hành công khai đầu tiên, từ đây app tự cập nhật.

    Có gì mới

    • Dashboard, Working Copy, Lịch sử và Branch cho mọi repository bạn thêm vào, quét thư mục hoặc clone từ URL
    • Đăng nhập ngay trong app khi remote HTTPS cần tài khoản: git lưu vào Keychain, giống như Terminal
    • Settings › Tài khoản: xem đang đăng nhập host nào, đăng nhập và đăng xuất
    • Stage, unstage hoặc huỷ cả file, từng hunk hay từng dòng, hiển thị dạng danh sách hoặc cây thư mục
    • Khung soạn commit có cấu trúc, xem trước trực tiếp và kiểm tra secret trước mỗi lần commit
    • Fetch, pull, push kèm nguyên văn output của git và câu giải thích dễ hiểu cho mỗi lỗi
    • Tiếng Anh và tiếng Việt, giao diện sáng và tối
Xem 1 phiên bản cũ hơn
  1. v1.0.0

    Bản phát hành công khai đầu tiên, từ đây app tự cập nhật.

    Có gì mới

    • Dashboard, Working Copy, Lịch sử và Branch cho mọi repository bạn thêm vào, quét thư mục hoặc clone từ URL
    • Stage, unstage hoặc huỷ cả file, từng hunk hay từng dòng, hiển thị dạng danh sách hoặc cây thư mục
    • Khung soạn commit có cấu trúc, xem trước trực tiếp và kiểm tra secret trước mỗi lần commit
    • Fetch, pull, push kèm nguyên văn output của git và câu giải thích dễ hiểu cho mỗi lỗi
    • Tiếng Anh và tiếng Việt, giao diện sáng và tối