Bài viết này là phần tiếp theo của bài viết hiện tại của tôi: Bắt đầu sử dụng GIT trên Linux. Nếu bạn mới làm quen với Git, tôi khuyên bạn nên đọc qua bài viết trước của tôi trước rồi mới tiếp tục với bài viết này.
Trong bài viết này, chúng ta sẽ tìm hiểu về cách tạo nhánh, gắn thẻ, đổi tên nhánh và hoàn nguyên các cam kết trên Git.
Tạo một nhánh mới trong kho lưu trữ hiện tại của bạn và kiểm tra nhánh đó.
Hãy tạo một tệp mới và đẩy nó vào nhánh mà chúng ta đã tạo.
Chúng ta có thể kiểm tra tất cả các thẻ mà chúng ta có và cam kết với những thẻ đó. Cách chúng ta đẩy nhánh của mình, chúng ta cũng có thể đẩy các thẻ.
Cách chúng ta kiểm tra một nhánh, chúng ta cũng có thể kiểm tra một thẻ cụ thể.
Hãy kiểm tra nhánh chính trước khi tiến hành các bước tiếp theo.
Bạn thậm chí có thể xóa nhánh khỏi kho lưu trữ từ xa.
Bạn có thể thấy rằng sau khi hoàn nguyên commit, các thay đổi cục bộ của bạn vẫn khả dụng.
Nếu bạn muốn hoàn nguyên commit và không muốn giữ nguyên các thay đổi cục bộ, bạn có thể sử dụng các lệnh sau và thực hiện khôi phục cài đặt gốc
Trong trường hợp này, bạn có thể thấy rằng sau khi hoàn nguyên commit, bạn không có các thay đổi cục bộ
Trong hai trường hợp trên, chúng ta đã thấy việc hoàn nguyên các cam kết cục bộ. Đôi khi bạn có thể cần hoàn nguyên các cam kết của mình từ kho lưu trữ từ xa. Để thực hiện việc này, bạn cần đẩy các thay đổi của mình lên nhánh với hậu tố "+" vào tên nhánh sau khi bạn hoàn nguyên các thay đổi cục bộ.
Bạn có thể thấy rằng kho lưu trữ từ xa không chứa cam kết đã được hoàn nguyên.
Trong bài viết này, chúng ta sẽ tìm hiểu về cách tạo nhánh, gắn thẻ, đổi tên nhánh và hoàn nguyên các cam kết trên Git.
- Nhánh: Phân nhánh giúp tạo ra một dòng phát triển mới để tránh mọi sự lộn xộn trên nhánh chính.
- Thẻ: Thẻ trong Git là tham chiếu đến lịch sử Git.
- Đổi tên nhánh: Đổi tên nhánh có nghĩa là thay đổi tên nhánh hiện có và đưa mã hiện có của chúng ta vào một nhánh có tên mới.
- Hoàn nguyên một cam kết: Hoàn nguyên giúp hoàn tác các thay đổi trong kho lưu trữ cục bộ và từ xa.
Điều kiện tiên quyết
- Hiểu biết cơ bản về Git (Nhấp vào đây để tìm hiểu những điều cơ bản về Git.)
Chúng ta sẽ làm gì?
- Tạo một nhánh.
- Gộp một nhánh vào nhánh chính.
- Tạo một thẻ.
- Đổi tên một nhánh.
- Hoàn nguyên một cam kết.
Tạo một nhánh
Truy cập kho lưu trữ cục bộ của bạn và chỉ cần kiểm tra nhánh của bạn và trạng thái của nó bằng các lệnh sau trước khi tạo một nhánh mới. Ở đây, test-repo là tên kho lưu trữ của tôi.
Mã:
pwd
Mã:
git status
Mã:
git log
Mã:
git branch
Tạo một nhánh mới trong kho lưu trữ hiện tại của bạn và kiểm tra nhánh đó.
Mã:
git branch
Mã:
git branch my-feature-branch
Mã:
git branch
Mã:
git checkout my-feature-branch
Mã:
git nhánh
Hãy tạo một tệp mới và đẩy nó vào nhánh mà chúng ta đã tạo.
Mã:
ll
Mã:
touch new-file-in-my-feature-branch
Mã:
git status
Mã:
git add new-file-in-my-feature-branch
Mã:
git commit -m "created a new file in my-feature-branch"
Mã:
git push
Mã:
git push --set-upstream origin my-feature-branch
Gộp một nhánh vào nhánh chính
Nếu chúng ta muốn những thay đổi của mình trong nhánh mới được hợp nhất vào nhánh chính, chúng ta có thể sử dụng các lệnh sau để hợp nhất những thay đổi đó vào nhánh mà chúng ta muốn. Đầu tiên, chúng ta cần kiểm tra nhánh chính rồi hợp nhất nhánh đã tạo.
Mã:
ll
Mã:
git branch
Mã:
git checkout main
Mã:
ll
Mã:
git merge my-feature-branch
Mã:
ll
Tạo thẻ
Tạo thẻ cũng đơn giản như tạo nhánh. Trước tiên, hãy thực hiện một số thay đổi trong therepo, sau đó tạo một thẻ. Chúng ta vẫn cần phải cam kết các thay đổi trước khi đẩy chúng lên kho lưu trữ từ xa.
Mã:
git tag
Mã:
ll
Mã:
touch new-file-for-tag
Mã:
git status
Mã:
git add new-file-for-tag
Mã:
git tag -a mytag.v1 -m
Mã:
git tag -a mytag.v1 -m "create a tag"
Mã:
git tag
Mã:
git log
Mã:
git status
Mã:
git commit -m "create a tag mytag.v1"
Mã:
git push
Chúng ta có thể kiểm tra tất cả các thẻ mà chúng ta có và cam kết với những thẻ đó. Cách chúng ta đẩy nhánh của mình, chúng ta cũng có thể đẩy các thẻ.
Mã:
git tag
Mã:
git show mytag.v1
Mã:
git push origin mytag.v1
Cách chúng ta kiểm tra một nhánh, chúng ta cũng có thể kiểm tra một thẻ cụ thể.
Mã:
git branch
Mã:
git tag
Mã:
git checkout mytag.v1
Mã:
git branch
Hãy kiểm tra nhánh chính trước khi tiến hành các bước tiếp theo.
Mã:
git branch
Mã:
git checkout main
Mã:
git branch
Đổi tên nhánh
Đôi khi bạn có thể cảm thấy rằng mình cần đổi tên nhánh của mình. Bạn có thể thực hiện điều này rất dễ dàng bằng cách sử dụng các lệnh sau.
Mã:
git branch
Mã:
git branch wrong-brach
Mã:
git checkout wrong-brach
Mã:
touch file-in-wrong-branch
Mã:
git add file-in-wrong-branch
Mã:
git commit -m "Đã tạo nhánh wrong-brach với tệp mới"
Mã:
git push
Mã:
git push --set-upstream origin wrong-brach
Mã:
git branch
Mã:
git branch --move wrong-brach correct-branch
Mã:
git branch
Mã:
push --set-upstream origin correct-branch
Bạn thậm chí có thể xóa nhánh khỏi kho lưu trữ từ xa.
Mã:
git branch
Mã:
git branch -a
Mã:
git push origin --delete wrong-brach
Mã:
git branch -a
Hoàn nguyên một cam kết
Trong trường hợp bạn muốn hoàn nguyên cam kết của mình và vẫn giữ nguyên các thay đổi cục bộ, bạn có thể sử dụng các lệnh sau để thực hiện thiết lập lại mềm.
Mã:
git branch
Mã:
git checkout main
Mã:
git log
Mã:
git reset --soft HEAD~1
Mã:
git log
Bạn có thể thấy rằng sau khi hoàn nguyên commit, các thay đổi cục bộ của bạn vẫn khả dụng.
Mã:
git status
Mã:
git pull
Mã:
git log
Mã:
git status
Nếu bạn muốn hoàn nguyên commit và không muốn giữ nguyên các thay đổi cục bộ, bạn có thể sử dụng các lệnh sau và thực hiện khôi phục cài đặt gốc
Mã:
git log
Mã:
git reset --hard HEAD~1
Mã:
git status
Mã:
git log
Trong trường hợp này, bạn có thể thấy rằng sau khi hoàn nguyên commit, bạn không có các thay đổi cục bộ
Mã:
git status
Mã:
git pull
Mã:
git log
Trong hai trường hợp trên, chúng ta đã thấy việc hoàn nguyên các cam kết cục bộ. Đôi khi bạn có thể cần hoàn nguyên các cam kết của mình từ kho lưu trữ từ xa. Để thực hiện việc này, bạn cần đẩy các thay đổi của mình lên nhánh với hậu tố "+" vào tên nhánh sau khi bạn hoàn nguyên các thay đổi cục bộ.
Mã:
git branch
Mã:
git log
Mã:
git reset --hard HEAD~1
Mã:
git push +main
Mã:
git push origin +main
Bạn có thể thấy rằng kho lưu trữ từ xa không chứa cam kết đã được hoàn nguyên.