Hướng dẫn nâng cao Git

Hướng dẫn nâng cao Git

Triển khai dự án của bạn thông qua một kho lưu trữ từ xa cho phép bạn quản lý linh hoạt từng bit của dự án. Các bản sửa lỗi, cập nhật tính năng, xóa tệp, làm việc theo nhóm, đóng góp nguồn mở, triển khai mã và hơn thế nữa hiện nằm trong tầm tay bạn với kiến ​​thức vững chắc về Git.





Vì vậy, bạn đã sử dụng Git nhưng muốn biết thêm? Dưới đây là một số mẹo Git nâng cao hơn sẽ giúp việc kiểm soát phiên bản dự án của bạn trở nên dễ dàng.





Chi nhánh Git

Một nhánh Git ngăn bạn đẩy trực tiếp đến nhánh chính. Sẽ rất hữu ích nếu bạn quản lý một dự án với một nhóm các nhà phát triển. Bạn có thể tạo bao nhiêu nhánh Git tùy thích và sau đó hợp nhất chúng vào nhánh chính.





Tạo một chi nhánh Git

Để tạo một nhánh Git, hãy sử dụng:

git branch branch_name

Chuyển sang một Chi nhánh Git

Sử dụng Thủ tục thanh toán để chuyển sang nhánh Git:



git checkout branch_name

Sau khi chuyển sang một chi nhánh, bạn có thể thực hiện các thay đổi của mình bằng cách sử dụng git add --all . Sau đó cam kết chúng bằng cách sử dụng git commit -m 'tên cam kết' chỉ huy.

So sánh một nhánh với Master

Sử dụng git diff chỉ huy:





git diff master..branch_name

Để so sánh các tệp cụ thể:

git diff master..testb -- main.html

So sánh hai nhánh tương tự như cách bạn so sánh một nhánh với nhánh cái:





git diff branch1..branch2

Để xem sự khác biệt trong một tệp cụ thể giữa hai nhánh:

git diff branch1..branch2 -- main.html

Đẩy các thay đổi đến một chi nhánh từ xa

Bạn có thể muốn một nhà phát triển khác xem xét những thay đổi bạn đã thực hiện đối với tệp trong chi nhánh địa phương của mình trước khi đưa chúng vào hoạt động. Một phương pháp hay là chuyển nhánh Git cục bộ của bạn sang một bản sao từ xa để họ có thể xem.

Giả sử rằng trước đây bạn đã tạo một chi nhánh cục bộ có tên thay đổi . Bạn có thể chuyển sang nhánh cục bộ đó, điều chỉnh tất cả các tệp bạn muốn, sau đó chuyển sang giai đoạn và cam kết chúng với nhánh đó.

Sau đó, bạn có thể đẩy những thay đổi đó sang phiên bản từ xa của nhánh:

git push origin changes

Hợp nhất nhánh từ xa với nhánh chính bằng cách sử dụng yêu cầu kéo

Vì vậy, một lập trình viên khác đã kiểm tra những thay đổi trong nhánh từ xa ( thay đổi ). Nhưng bạn muốn hợp nhất nó với nhánh chính và đẩy nó hoạt động.

Hãy nhớ rằng nhánh từ xa của bạn kế thừa tên của nhánh Git cục bộ của bạn ( thay đổi ). Đây là cách hợp nhất các thay đổi:

Chuyển sang nhánh chính:

git checkout master

Kéo điểm gốc hoặc ĐẦU của nhánh ( thay đổi ) để hợp nhất nó với nhánh chính:

git pull origin changes

Đẩy hợp nhất này trực tiếp đến nhánh chính:

git push origin master

Sử dụng Git Merge Thay thế

Để hợp nhất một nhánh với nhánh chính bằng cách sử dụng đi chỉ huy:

Di chuyển đến chi nhánh chính:

git checkout master

Hợp nhất nó với nhánh ( thay đổi ):

git merge changes

Sau đó đẩy hợp nhất trực tiếp đến nhánh chính:

nghệ sĩ kiếm được bao nhiêu trên Spotify
git push origin master

Đảm bảo rằng bạn thay thế thay đổi với tên chi nhánh của bạn.

Sau khi hợp nhất thành công, bạn có thể xóa chi nhánh cục bộ và từ xa nếu bạn không cần nó nữa:

Có liên quan: Cách đổi tên chi nhánh trong Git

Git Rebase

Nếu bạn có nhiều chi nhánh với các cam kết lỗi thời, bạn có thể căn cứ lại hoặc tập trung lại head / refs của những nhánh đó để kế thừa head / refs của một cập nhật.

Do đó, việc rebasing rất hữu ích khi bạn cần cập nhật một số chi nhánh với cơ sở của chi nhánh hiện tại.

Mặc dù vậy, việc khôi phục không phải là một hành động thường xuyên, đặc biệt nếu bạn đang làm việc với một nhóm vì nó có thể làm gián đoạn toàn bộ quy trình làm việc. Nhưng nếu bạn làm việc một mình và bạn đã quen thuộc với quy trình làm việc và các chi nhánh của mình, việc phục hồi sẽ không tàn phá nếu bạn biết nơi và cách sử dụng nó.

Ví dụ, giả sử rằng bạn có hai nhánh; nhánh1 và nhánh2. Bây giờ, bạn đã không thực hiện bất kỳ thay đổi nào đối với nhánh1 trong một thời gian. Nhưng bạn luôn cam kết các thay đổi đối với branch2, kể cả gần đây.

Vì vậy, bạn quyết định thực hiện nhánh1 cùng với luồng. Do đó, việc viết lại branch1 cho branch2, có nghĩa là bạn đang yêu cầu branch1 bỏ qua các cam kết trước đó của nó và kế thừa cam kết gần đây được thực hiện cho branch2.

Đây là cách bạn có thể làm điều đó:

Chuyển sang nhánh bị bỏ rơi (nhánh1):

git checkout branch1

Sau đó, rebase branch1 thành branch2 đã cập nhật:

git rebase branch2

Git Squash

Bí kíp Git cho phép bạn hợp nhất nhiều cam kết thành một. Nó giúp ích khi bạn chạy git cam kết nhiều lần trên một bản cập nhật duy nhất. Một ví dụ thực tế là khi mỗi bản sửa lỗi hoặc trình tái cấu trúc mã cho một tính năng duy nhất có một cam kết riêng.

Nhưng bạn có thể không muốn đẩy HEAD cam kết với những người đi kèm vì chúng đều có cùng mục đích. Một cách tiếp cận được khuyến nghị là gộp chúng thành một để tránh nhầm lẫn khi theo dõi các cam kết.

Cách tốt nhất để xóa các cam kết là thông qua chế độ rebase tương tác. Hãy xem ví dụ dưới đây để hiểu rõ hơn điều này.

Trong ví dụ này, giả sử rằng bạn có năm bản sửa lỗi. Và có một cam kết cho mỗi người trong số họ. Đây là cách bạn có thể gộp năm cam kết này thành một:

Chạy git reflog để xem mã băm của các cam kết của bạn:

git reflog

Đây là kết quả trong trường hợp này:

Bây giờ mục tiêu của bạn là hoàn thành năm cam kết cuối cùng, bắt đầu với sửa chữa đầu tiên lên đến sửa chữa thứ năm .

Để làm điều đó, hãy sao chép mã băm của cam kết ngay bên dưới sửa chữa đầu tiên ( 0a83962 ). Sau đó nhấn NS thoát khỏi reflog .

Bây giờ chạy git rebase --interactive trên băm đó.

git rebase --interactive 0a83962

Sau đó, Git sẽ mở một tệp rebase tương tác trông giống như sau:

Để hoàn thành các cam kết, ngoại trừ sửa chữa đầu tiên , thay thế nhặt với NS cho mỗi cam kết khác:

Lưu và đóng tệp này.

Sau đó, một tệp khác sẽ mở ra để bạn đổi tên cam kết bị bóp nghẹt:

cách tăng ram windows 7

Làm sạch chúng và nhập tên ưu tiên cho cam kết bị bóp nghẹt:

Lưu tệp đó. Sau đó, đóng nó và bạn sẽ nhận được thông báo thành công trong thiết bị đầu cuối của mình.

Ghi chú: Tệp tương tác có thể mở trong thiết bị đầu cuối. Nhưng nếu bạn đang sử dụng Windows, bạn có thể muốn buộc thiết bị đầu cuối của mình mở các tệp trên toàn cầu tới trình soạn thảo văn bản yêu thích của bạn để làm cho quá trình xử lý dễ dàng.

Để làm điều đó, hãy mở dòng lệnh của bạn và chạy:

git config --global core.editor ''path to choice text editor' -n -w'

Git Fork so với Git Clone

Forking và cloning là hai thuật ngữ khác nhau trong Git. Bạn không thể phân nhánh kho lưu trữ của mình vì nó đã ở đó với bạn. Tuy nhiên, bạn có thể phân nhánh kho lưu trữ của người khác và sao chép nó sau đó.

Tạo kho lưu trữ có nghĩa là bạn đang lấy một bản sao kho lưu trữ của ai đó và biến nó thành của bạn. Khi bạn nhận được bản sao của kho lưu trữ đó, bạn có thể sao chép nó giống như cách bạn làm với bất kỳ kho lưu trữ git nào của mình cho các thay đổi cục bộ.

Đây là cách để sao chép một kho lưu trữ từ xa trên GitHub và bắt đầu tải xuống thư mục cục bộ của bạn:

git clone https://github.com/username/repository_name.git/

Khôi phục tệp về trạng thái mặc định của nó

Nếu bạn muốn xóa các thay đổi trong tệp sau lần cam kết cuối cùng, bạn có thể sử dụng khôi phục git chỉ huy:

git restore filename

Sửa đổi cam kết

Bạn có thể quay lại cam kết trước đó nếu bạn quên thực hiện thay đổi đối với một số tệp trong khi sắp xếp chúng.

Thực hiện các thay đổi đối với tệp bạn đã quên. Sau đó sử dụng git sửa đổi để xem lại một cam kết:

git add file_forgotten
git commit --amend

Tệp trên sân khấu

Bạn có thể xóa các tệp cụ thể mà bạn đã sắp xếp cho một cam kết bằng cách sử dụng đi rm chỉ huy:

git rm --cached filename

Bạn cũng có thể xóa nhiều tệp cùng một lúc:

git rm --cached file1 file2 file3 file4

Hãy nhớ nối phần mở rộng tệp có liên quan vào bất kỳ tệp nào bạn đang miễn trừ. Ví dụ: một tệp văn bản thuần túy phải là filename.txt .

Có liên quan: Làm thế nào để làm sạch Git và loại bỏ các tập tin không theo dõi

Đặt lại Git

Sử dụng git đặt lại rất hữu ích nếu bạn muốn xóa tất cả các tệp mà bạn đã tổ chức để cam kết cùng một lúc:

git reset

Tuy nhiên, Git đặt lại HEAD trỏ HEAD của một nhánh tới một cam kết cụ thể trong cây làm việc của bạn. Ví dụ: nếu bạn chưa đẩy cam kết hiện tại của mình, bạn có thể quay lại cam kết đã đẩy gần đây:

git reset --soft HEAD~1

Thay thế --mềm với --khó khăn nếu bạn đã đẩy cam kết hiện tại:

git reset --hard HEAD~1

Hoàn nguyên

Không giống như cài lại chỉ huy, quay trở lại duy trì tính toàn vẹn của lịch sử cam kết của bạn. Thật tiện lợi nếu bạn muốn sửa đổi cam kết do lỗi hoặc lỗi.

Nó không từ bỏ cam kết mục tiêu hoặc tạo một cam kết mới. Thay vào đó, nó hoàn nguyên về những thay đổi gần đây mà bạn thực hiện mà không xóa hoặc đổi tên một cam kết như vậy. Đó là một cách tuyệt vời để giữ cho các cam kết của bạn sạch sẽ hơn, ngoài ra nó còn an toàn hơn việc đặt lại mọi lúc.

Để hoàn nguyên về cam kết:

git revert HEAD~1

Ở đâu ĐẦU ~ 1 trỏ đến một cam kết cụ thể trong cây làm việc của bạn.

Xóa một tệp được theo dõi hoặc một thư mục

Bạn có thể dùng git rm -f để xóa mọi tệp được theo dõi trong cây làm việc của bạn. Tuy nhiên, lưu ý rằng Git không thể xóa các tệp chưa được theo dõi, vì nó không lưu vào bộ nhớ cache của chúng.

Để xóa một tệp theo giai đoạn:

git rm -f filename

Để xóa một thư mục theo giai đoạn:

git rm -r -f foldername

Ghi nhật ký Git

Để xem nhật ký cam kết và lịch sử của bạn trong Git:

git log

Để ghi lại các hoạt động trong một nhánh cụ thể:

git log branch_name

Có liên quan: Cách kiểm tra lịch sử dự án bằng git log

Đôi khi bạn có thể muốn hoàn nguyên về một cam kết bị bỏ rơi. Vì vậy, để xem các cam kết bị bỏ rơi, bao gồm các cam kết có liên quan:

git reflog

Để xem nhật ký giới thiệu cho một chi nhánh cụ thể:

git reflog branch_name

Quản lý các phiên bản dự án của bạn giống như một chuyên gia với Git

Với việc Git cung cấp nhiều ưu điểm, bạn có thể quản lý các bản phát hành dự án của mình từ xa mà không cần ghi chép các tệp và thư mục tại chỗ trong chi nhánh chính của bạn. Ngoài ra, nó cho phép bạn chạy các dự án dễ dàng với một nhóm.

Như bạn đã thấy, Git có nhiều tính năng mà bạn có thể khám phá. Nhưng hãy cẩn thận để sử dụng các tính năng này một cách có mục đích. Nếu không, bạn có thể sẽ phá vỡ mọi thứ. Điều đó nói rằng, bạn vẫn có thể tạo một kho lưu trữ từ xa demo và chơi với các tính năng này.

Đăng lại Đăng lại tiếng riu ríu E-mail Quản lý phiên bản tệp của bạn giống như một lập trình viên với Git

Các nhà lập trình đã tạo ra hệ thống kiểm soát phiên bản (VCS) để giải quyết các vấn đề kiểm soát phiên bản tệp. Hãy xem xét những điều cơ bản về kiểm soát phiên bản bằng hệ thống hàng đầu hiện nay, Git.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Phát triển web
  • GitHub
  • Hướng dẫn viết mã
Giới thiệu về tác giả Idisou Omisola(Đã xuất bản 94 bài báo)

Idowu đam mê mọi thứ về công nghệ và năng suất thông minh. Trong thời gian rảnh rỗi, anh ấy chơi mã hóa và chuyển sang bàn cờ khi anh ấy buồn chán, nhưng anh ấy cũng thích thoát khỏi thói quen đôi khi. Niềm đam mê của anh ấy trong việc chỉ ra cho mọi người cách thức xung quanh công nghệ hiện đại đã thúc đẩy anh ấy viết nhiều hơn.

Xem thêm từ Idowu Omisola

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký