Làm quen với Git và GitHub

Kết nối đến tài khoản GitHub từ Visual Studio

  • Mở dự án trong Visual Studio (bài viết này dùng VS 2017), ví dụ dự án BooksShopOnline
  • Chọn File > Add to Source Control

  • Chọn View > Team Explorer, cửa sổ Team Explorer xuất hiện:

  • Chọn Sync, tại mục Push to Remote Repository chọn Publish Git Repo

Xuất hiện yêu cầu nhập URL của một Repo từ xa (tức Repo trên GitHub)

Với yêu cầu này thì chúng ta phải tạo một Repository rỗng trên tài khoản GitHub của chúng ta. Mở tài khoản GitHub và tạo một Repository mới tên BookShopOnline (trùng tên với dự án) và rỗng, tức là chưa khởi tạo một tập tin README

Có một số trường hợp chúng ta chọn README như sau:

Nhấn nút Create repository để tạo repo BooksShopOnline sẽ xuất hiện tập tin README trong Repo:

Sao chép đường dẫn đến Repo này bằng cách nhấn nút Clone or download

Dán đường dẫn này đến mục Push to Remote Repository

Nhấn Publish. Nếu chúng ta tạo một Repo rỗng, tức là chưa khởi tạo README, thì việc xuất bản đến GitHub là ổn. Tuy nhiên, trong trường hợp chúng ta tạo Repo chứa tập tin README thì có thể xảy ra lỗi như sau:

Trong Team Explorer, tìm đến Manage Connections:

Chọn và nhấn chuột phải vào dự án của chúng ta (BooksShopOnline) và chọn Open Command Prompt

Trong hộp thoại Command gõ dòng lệnh


git push origin master –force

Kết quả:

Như vậy chúng ta đã chia sẻ thành công dự án đến một Repo trên GitHub.

Cập nhật nội dung

Ví dụ chúng ta tạo một ít thay đổi trong tập tin Default.aspx và muốn cập nhật đến GitHub. Mở dự án trong Team Explorer (View > Team Explorer), chọn Changes

Nhập một vài thông tin vào ô Enter a commit message

Nhấn Commit All and Push

Có thể xảy ra một vài vấn đề.  Tìm đến mục Outgoing Commits chọn Push trở lại và nếu thành công sẽ như sau:

Kiểm tra lại GitHub sẽ thấy thông điệp commit chúng ta vừa cập nhật:

Tạo nhánh

Giả sử chúng ta tạo một nhánh mới tên first_branch cục bộ tại Visual Studio bằng cách tìm đến mục Branches trong Team Explorer:

Tạo một nhánh mới bằng cách chọn New Branch

Bây giờ chúng ta có hai nhánh là master (mặc định) và first_branch:

Chọn nhánh first_branch. Bây giờ chúng ta lại tạo một vài sự thay đổi trong tập tin Default.aspx tại nhánh first_branch:

Nhấn Commit All and Push tại Commit All, có thể xảy ra lỗi

Nhấn Push tại Outgoing Commits

Kiểm tra trên GitHub chúng ta đã có hai nhánh và các cập nhật tương ứng:

Tạo Pull Requests và Merge

Có thể xem sự thay đổi giữa hai nhánh master và first_branch bằng cách nhấn nút Compare & pull request có thể sẽ xuất hiện thông điệp

Kéo xuống phía dưới sẽ thấy sự thay đổi nội dung tập tin Default.aspx với các dòng mã được bôi màu:

Một cách khác để tạo pull request là nhấn nút New pull request gần nút Branch:

Chọn các nhánh để so sánh với nhau từ base và compare:

Nếu không có vấn đề gì sau khi so sánh nội dung các nhánh với nhau, chúng ta có thể tiến hành hợp nhất các nhánh đến nhánh base:

Nhấn nút Merger pull request là xong.

Một số xung đột có thể xảy ra khi hợp nhất các nhánh xem thêm:

https://www.git-tower.com/learn/git/ebook/en/desktop-gui/advanced-topics/merge-conflicts#start

Xem thêm: Sử dụng Git và GitHub trong Android Studio 3.X >