Yêu cầu thg 4 20, 2018 11:52 CH 902 0 1
  • 902 0 1
-3

Khi nào thì tạo branch khi nào tạo remote

Chia sẻ
  • 902 0 1
  • Mọi người khi làm nhóm thì mọi người sẽ tạo branch khi nào và remote khi nào.
  • Khi push 1 thay đổi từ 1 branch thì ta có thể push nên 1 remote bất kì nhưng việc tạo nhiều remote để push nên như vậy để làm cái gì trong khi tất cả thay đổi của branch ta cứ push nên 1 remote thì có gì khác chứ bỏi mình không thấy trong trang website git không hiện các remote
  • có khái niệm branch local không và khái niệm branch remote không cảm ơn mọi người đã trả lời
Avatar Tran Duc Thang @thangtd90
thg 4 22, 2018 2:45 SA

Có vẻ bạn đã hiểu nhầm về khái niệm remote, branch trong Git. 🤔

Bạn có thể tham khảo qua bài viết này để nắm rõ hơn về các khái niệm cũng như cách sử dụng các khái niệm này trong Git nhé 😉

https://viblo.asia/p/git-va-mot-so-dieu-can-biet-1VgZv9qOKAw

Avatar Đơngiantớtên Đạt @luuxuandattmydbg
thg 4 22, 2018 6:41 SA

thank you, trong quá trình thực hành thấy rất khó hiểu về việt tạo branch (git checkout -b tenbranch) xong kiểm tra bằng lệnh git branch thì thấy nó nhưng khi nhảy qua website git thì chả thấy đâu còn khi tạo branch trên web của git thì khi về cmd git gõ git branch mình lại chả thấy cái branch vừa tạo ở web git nữa. Với cả về vấn đề remote, mình tạo bằng lệnh git remote name_remote thì ko dõ nó là cái gì lưu trữ ở đâu, dồi thử tạo cái máy ảo với 1 tài khoản git khác và mình clone project về núc đấy gõ lệnh git remote thì cũng chả thấy cái remote mà tạo ở cái máy kia đâu nữa, thậm chí trên web của git cũng ko lần ra được nó

Avatar Huu Hung @huuhung96
thg 4 22, 2018 9:24 SA

@luuxuandattmydbg Vậy nên nó mới chia ra 2 môi trường là local (trên máy tính) và remote ( Môi trương internet github) bạn nhé.

Khi bạn git checkout -b tenbranch thì nó mới chỉ tạo branch trên local máy tính của bạn mà thôi. Bạn muốn đẩy nó lên github thì phải dùng lệnh push thông qua remote kết nối với repository ( Kho ) đã tạo . ( git push tenremote tenbranch ) . Việc mà bạn code, thực hiện mọi thao tác trên máy tính là đang ở local, khi xong muốn đẩy lên môi trường internet thì phải push . Chứ không phải là nó đồng bộ tự động với nhau, không phải edit ở local thì github nó thay đổi.

Còn bạn tạo ở trên github mà muốn lấy về website thì dùng lệnh pull hoặc fetch .

1 CÂU TRẢ LỜI


Đã trả lời thg 4 21, 2018 2:06 SA
Đã được chấp nhận
+9

Bạn chỉ có thể push lên remote của repository mà bạn có quyền sở hữu thôi nhé. Có lẽ bạn đã có sự nhầm lẫn gì đó giữa remote và branch chăng?

Remote là bạn dùng để tạo kết nối với repository ( Kho ). Bạn chỉ tạo remote khi cần kết nối với repository (kho) mới mà thôi. Mình khuyên mỗi repository ( Kho) như thế chỉ tạo 1 remote là đủ.

Mình lấy ví dụ như này là TH cần phải tạo thêm remote.

(1) Nhóm bạn có 1 repository gốc dùng để chứa code master hoặc develop ban đầu dùng cho tất cả thành viên. ( Đây cũng là nơi code đã được review, hoàn chỉnh thì meger vào đây) => Lúc này, bạn sẽ phải tạo 1 remote để có thể kết nối với repository này. Giả sử mình đặt tên remote là group. Lý do là để pull được code mới về khi code của nhóm có sự thay đổi( Thành viên nào đó đã hoàn thành chức năng gì đó và được meger).

Đó là cách làm việc nhóm, phải xử lý khi có sự thay đổi. Phải rebase và fix conflict cần thiết thì mới ra cái code master. Chứ không là xung đột tan nát hết.

Trong khi đó, bạn cũng sẽ có 1 repository cá nhân ở gitbub để làm việc. Bạn sẽ tạo 1 remote (Thường tên là origin ) để kết nối từ repository local với repository github này của bạn.

Vậy bây giờ. Bạn sẽ chỉ cần thao tác thông qua 2 remote mà thôi. ( group và origin )

Bạn có thể tạo nhiều branch trên local ( máy tính ) và khi bạn push lên môi trường internet rồi (Cụ thể ở đây là repository của github thì nó được gọi là branch remote thôi). Còn khi nào cần tạo branch thì thông thường làm 1 chức năng hoặc 1 nhiệm vụ thì mình tạo một branch mới. Và chỉ nên dùng 1 remote origin này là đủ rồi để kết nối với repository cá nhân của bạn. Bạn có thể push branch local lên thoải mái thông qua dòng lệnh git push origin [tên branch].

Sau đó, từ repository cá nhân của bạn. Mới tạo 1 request pull đến repository gốc kia của nhóm để yêu cầu được meger vào. Giả sử code của bạn tốt, người trưởng nhóm giữ quyền quản lý repository chấp nhận meger cho bạn. Thì lúc này, các thành viên khác trong nhóm thấy sự thay đổi, phải pull code mới về thông qua remote đã tạo kết nối với nhóm để rebase nếu xảy ra conflict.

Mình trình bày ở trên là cách làm việc ở công ty. Các bạn cũng nên áp dụng từ đầu. Còn nếu làm nhóm thì chỉ cần 1 repository thôi cũng được.( Như bạn trình bày ở trên thì mình nghĩ các bạn đang sử dụng chung 1 repository). Mỗi cá nhân sẽ làm theo từng branch. Nhưng có điều phải set quyền repository cho tất cả thành viên đồng sở hữu thì mới được. Và cũng nên thống nhất giao quyền được meger cho 1 người thôi. Và đặc biệt là trước khi bấm meger cần kiểm tra xem có conflict hay không.

Chia sẻ
Avatar Đơngiantớtên Đạt @luuxuandattmydbg
thg 4 22, 2018 6:42 SA

cám ơn bạn đã support rất cẩn thận, 😃

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí