- vừa được xem lúc

Chia sẻ "code change" với đồng nghiệp sử dụng git diff

0 0 3

Người đăng: Thang Le

Theo Viblo Asia

Trước khi đi vào bài viết, gửi tới các bạn lời chúc sức khỏe cho một năm mới 2024 thật cháy với ngọn lửa học tập, công việc vừa ý, túi tiền nặng ký nhé ♥️😘

Hello, long time no see. Chuyện là hôm nay mình muốn chia sẻ với các bạn một chuyện, ban đầu mình nghĩ là chuyện này chắc ai cũng biết rồi nên không cần viết làm chi, cho đến cuối tuần vừa rồi mình gặp một case khó đỡ ở công ty...

Vấn đề

Chuyện là có 2 nhân viên nọ - Tý và Tèo được phân công làm chung 1 issue với nhau, vì Tý nhận issue này trước vài ngày nên đã làm được kha khá (code change cũng đã kha khá) nhưng code vẫn đang còn lỗi chưa thể chạy được, Tèo lúc này được phân công vào sau, mới nhắn qua hỏi Tý: "Anh ơi, a share cho e chỗ a làm đi, để e cùng nghiên cứu". Tý cũng muốn share lắm, vì có người phụ làm mà, nhưng khổ nỗi, chỗ này chưa ra thể thống gì cả, push lên không ổn lắm (Tý nghĩ vậy), thế là Tý mới bèn nói: "Vậy a copy chỗ a change thư mục rồi zip lại gửi cho e nhé". Tý bẽn lẽn gật đầu, cả hai kê ghế ngồi bên cùng nhau lựa file đã change để copy ra một thư mục riêng...

Chắc đang copy được một lúc thì mình có vi vu qua ngía thử (vốn mình nhiều chuyện), cũng may là ae chưa copy xong nên mình nhìn qua thì hiểu ý tưởng ngay. Lúc này bản tính thích thể hiện ùa về, á lộn, thích giúp đỡ (mà họ có nhờ mình đâu nhỉ), mình mới bảo, ủa sao hai người không xài git diff

Ủa, git diff là gì vậy, giúp đỡ được hai ae ni không?

Giới thiệu git diff

Lệnh này search google là ra ngay, về cơ bản lệnh này sẽ liệt kê sự thay đổi hiện tại với commit cuối, hoặc giữa các commit hoặc giữa các branch với nhau và còn vài case nữa.

Chi tiết về tham số của git diff ở đây

Dùng git diff giải quyết vấn đề share thay đổi chưa commit tới người khác

Quay lại cách giải quyết vấn đề chính, thay vì copy từng file có thay đổi ra 1 thư mục khác, bây giờ chúng ta có thể dùng lệnh git diff. Cách dùng như sau:

bash

git diff > tên_file.diff

Lệnh này sẽ ghi tất cả thay đổi ra 1 file với cấu trúc <tên file.diff> chúng ta thêm .diff vì 1 số tool quản lý git có thể đọc được.

Sau đó chỉ cần gửi file này cho đồng nghiệp và đồng nghiệp chỉ cần dùng lệnh:

bash

git apply tên_file.diff

Là tất cả change của người này đã được share cho người kia.

Có một lưu ý nhỏ là khi xài lệnh này bộ source của cả hai tốt nhất có cùng last commit như nhau vì nếu khác, khi apply sẽ bị lỗi.

Hạn chế khi dùng cách này

File diff để lâu mới apply khả năng sẽ không xài được nữa (vì có quá nhiều commit mới đã change code), nên tốt nhất một khi đã tạo ra thì xài luôn. Nhìn hơi loạn nếu bạn mở file .diff ra để xem, nhưng nếu bạn pro thì không vấn đề gì, thậm chí nhìn vào file này bạn còn thấy được nhiều cái hay ho của git.

Tóm lại

Viết tới đây thôi. Hi vọng bài giới thiệu cách share code change nhưng không muốn commit tới đồng nghiệp với lệnh git diff này giúp ích được bạn, mình thấy cũng không to tát lắm, nhưng có thể ai đó sẽ cần. Hẹn gặp lại bạn trong bài viết sắp tới. À, nhân dịp bày viết đầu tay 2024 của mình, mình muốn gửi tới các bạn lời chúc sức khỏe cho một năm 2024 công việc như ý, tiền tài vào ví nhé. Cảm ơn bạn đã đọc bài.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tập hợp những câu lệnh GIT hữu dụng

Dưới đây là một vài ví dụ về các câu lệnh Git mà tôi thường dùng. git config --global user.name "John Doe". git config --global user.

0 0 55

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 70

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 1): Một ít lý thuyết

CI/CD là gì. Về mặt khái niệm là vậy nhưng về mặt triển khai thì CI/CD là quá trình tự động thực hiện các quá trình build, test, release, deploy khi có các trigger như commit/merge code lên một branch định sẵn hoặc có thể là tự động chạy theo một lịch cố định.

0 0 118

- vừa được xem lúc

Giới thiệu về Git LFS

. Git LFS là gì . Git LFS làm điều này bằng cách thay thế các tệp lớn trong repo của bạn bằng một con trỏ nhỏ.

0 0 29

- vừa được xem lúc

Git workflow được Google và Facebook sử dụng có gì hay ho

Với developer thì Git hẳn là công cụ rất quen thuộc và không thể thiếu rồi. Thế nhưng có mấy ai thực sự hiểu được Git.

0 0 66