Hình chụp từ trang của của Sourcetree
Mình đặt tiêu đề “để lưu mã nguồn” để cho gọn nhằm mục đích câu view thôi, chứ thật ra Git và SourceTree là công cụ để quản lý phiên bản mã nguồn (Source version control) — SVC.
Có lẽ giờ không lập trình viên nào mà lại không dùng SVC. Nó là đã trở thành phần thiết yếu trong quá trình code của chúng ta, giờ chỉ có khác nhau là bạn dùng SVN, bạn dùng Git gì đó thôi.
Còn nếu bạn chưa biết SVC, thì mình giải thích qua như thế này nhé.
Nhớ có một thầy ở trường đại học mình kể, hồi xưa code xong một chức năng gì đó là copy nguyên folder code ra một file khác, đặt tên sao đó để gợi nhớ, rồi mới code tiếp. Nên folder mã nguồn của thầy có hàng trăm folder con, ứng với từng phiên bản code cũ mới khác nhau. Vì sao phải làm vậy? Vì khi code chứ năng mới, rất có thể chúng ta sẽ xóa đi và thay đổi những đoạn code cũ không còn phù hợp. Nhưng nếu muốn xem lại thì sao? Hay là muốn so sách 2 cách viết cách nào tốt hơn? Hoặc tệ nhật là code mới không chạy, lúc này không còn nhớ code cũ (chạy ngon) như thế nào nữa. Nên phải back up code lại. Nhưng vì chưa có công cụ thích hợp nên thầy đành phải copy ra thành nhiều folder riêng biệt như thế. Rồi giả sử 2 người muốn code cùng một dự án thì phải làm sao? Bó tay luôn.
Ông trời thật sáng suốt, thấy thầy mình khổ quá liền phái mấy anh code siêu nhân nghĩ ra công cụ quản lý mã nguồn, là cái SVC mình đã nhắc ở trên đó. Chức năng của nó chính xác là để giúp thầy mình không còn phải tự copy code ra thành trăm bản như thế kia nữa. Từ đó, các lập trình viên sống hạnh phúc bên nhau mãi mãi.
Nguyên lý hoạt động của nó cơ bản cũng là lưu từng phiên bản của mã nguồn mình, nhưng nó thông minh giúp tìm ra những chỗ thay đổi trong một file và lưu cái đó lại, chứ không phải lưu 2 file rồi bắt mình ngồi dò xem nó khác nhau như thế nào. Và để nhiều người có thể làm việc chung trên một dự án, một bộ mã nguồn “siêu hạng” sẽ được lưu ở một máy chủ nào đó. Cứ hễ ai có thay đổi vào mã nguồn thì sẽ phải thực hiện việc đồng bộ với máy chủ siêu hạng, để đảm bảo mã nguồn đó là mới nhất và gộp chung mã nguồn của nhiều người lại.
Từ hồi xưa biết đến SVN qua TortoiseSVN, mình đã thích nó liền và thấy được sự hữu ích tuyệt vời của nó. Nên mình đi khắp nơi hễ cứ thấy ai mà chưa biết dùng SVN là mình chỉ dùng cho bằng được. Còn mà không chịu xài là mình bĩu môi lêu lêu cho.
Git là công cụ ra đời sau này, và nó khắc phục được nhược điểm của SVN nên giờ thì Git là bá chủ. Cơ bản là Git thêm một lớp “server” ngay trên máy của mình, để nếu có muốn thay đổi gì, thì cũng đồng bộ trên server trên máy mà không lo đụng độ với mấy đồng nghiệp khác. Khi nào xong hết, ok hết, thì mới đẩy lên trên mã nguồn siêu hạng chung kia để đồng bộ.
Nó còn còn có cả mớ chức năng khác như là Stash, phân nhánh, gắn thẻ (tag), nhập code, giải quyết mâu thuẫn code, … nhưng mà nhiều lắm, mình kể không hết, thôi thì bạn từ từ khám phá nhé.
Kể giông dài thế thôi chứ nội dung hôm nay cũng chỉ để giới thiệu công cụ mình dùng để quản lý mã nguồn: SourceTree
Tải về và cài đặt, nó cũng có bộ Git trong đó rồi nên không cần phải cài thêm nữa. Chỉ cần nhiều đó là đủ dùng.
Chúc bạn code vui nhé.