Mình muốn hỏi về cách sử dụng Git - GitHub
Chào các bạn, mình mới tìm hiểu về Git, mình có bài toán thế này nhờ mọi người chỉ cách !
Giả sử mình, ban ngày mình đi làm ở Công ty - dùng Computer của Công ty, mình tạo 1 project . Làm đến chiều tối thì xong 1 phần trong project, trước khi về mình tiến hành đẩy source code lên Github (đoạn đẩy code lên Github này mình đã biết làm).
Tối về nhà, mình muốn tiếp tục với project đó trên Laptop cá nhân của mình bằng cách Clone source code trên Github về => sau đó mình tiếp tục làm tiếp project đó. Khi làm xong rồi rồi => trong Laptop mình đang có source code mới này, mình cần thực hiện thế nào để đẩy lại source code mới này lên GitHub thay thế cho source code lúc chiều, để đến sáng mai qua Công ty mình lại lấy được source code mới của tối hôm qua để tiếp tục làm ...vv cứ tiếp tục luân phiên vậy.
Nhờ các bạn chỉ cách giuso mình. Xinc ám ơn mọi người !
2 CÂU TRẢ LỜI
Hì, chắc do bạn chưa rành. Về cơ bản TH của bạn chỉ có một mình bạn code thôi thì đơn giản làm theo bước sau:
- ở công ty: bạn đang dev rồi nên chắc tạo branch rồi (ví dụ branch của bạn là: dev_A) --> commit code mới --> trước khi về push hết code lên git
- ở nhà: nếu chưa có lấy code lần nào thì clone code từ git về --> checkout qua branch dev_A -> pull code mới nhất về (>git pull origin dev_A) --> Code tiếp function ở công ty ---> làm xong commit lên --> trước khi đi ngủ push lên git --> hôm sau lên công ty làm giống như bước ở nhà để lấy code mới lúc tối.
- Khi làm với git hoặc svn thì phải chú ý branch mình làm, và đừng push hay commit gì lên master nhé., và lúc lấy code về để làm thì cũng phải đúng branch đó. Thấy bạn có push lên master : $ git push origin master, nên bạn kiểm tra lại nha.
Nhưng mà mình có lời khuyên :
- là code của công ty nếu lấy về tham khảo mà CTy không cấm thì ok, tôt nhất bạn đừng share ra ngoài.
- Việc công ty chớ nên ôm về nhà nhiều quá, về nhà nên suy nghĩ cách giải quyết vấn đề, làm demo ở nhà, rồi lên công ty giải quyết theo hướng đó
mình cám ơn bạn @dat12012 nhiều nha. Code là code của mình tự viết chứ không phải code của công ty cũng không phải ôm việc ở Công Ty về nhà làm đâu bạn , tại mình vừa vào Công ty - các anh yêu cầu mình tự tìm hiểu về Git để phục vụ công việc và vì trước đây mình chưa từng dùng nên giờ đang phải tự học nên mình tự tạo ra 1 ví dụ thực tế như vậy cho trực quan để thực hành cho dễ thôi bạn ah
@wiliamfeng hihi, good job. Về vấn đề git bạn đã ok chưa.
Mình ko rõ trường hợp này là project của riêng bạn hay là project của công ty. Nếu là project của riêng bạn thì cứ tự push tự merge rồi pull code về thôi ^^
Còn nếu là project công ty (bạn không có quyền merge) thì bạn có thể làm như sau:
Khi bạn pull code về máy cá nhân làm thì nó sẽ là commit mà bạn tạo ra khi ở công ty, giờ bạn muốn đẩy lên lại thì dùng git commit -m "ten commit" --amend
để ghi đè lên commit cũ và git push ten-repo ten-banch -f
để ghi đè lên pull mà bạn đã đẩy lên lúc chiều.
Khi này thì pull bạn gửi lên github sẽ là code bạn làm trên laptop cá nhân.
Mong là câu trả lời của mình giúp được bạn!
Ở đây bạn có nói là : "Khi bạn pull code về máy cá nhân"
.
Bạn cho mình hỏi, ví dụ hồi sáng mình mới khởi tạo project lần đầu tiên ở Computer của Công ty - tức là trong Laptop cá nhân của mình chưa có gì cả => thì đến tối về, mình muốn có source code đó thì lần đầu tiên mình phải clone
nó về chứ sao mà thực hiện pull
ngay được nhỉ. Phải không bạn ?
@wiliamfeng đúng rồi bạn, lần đầu tiên thì bạn sẽ phải clone về.
Nhưng vấn đề là pull request bạn gửi lúc chiều đã được merge hay chưa?
Nếu đc merge rồi thì bạn clone về sẽ có code dó luôn.
Nếu chưa được merge thì bạn phải pull code từ nhánh ấy về.
@wiliamfeng Đúng rồi bạn, lần đầu bạn sẽ clone
về, còn từ lần sau, để cập nhật code mới từ github về máy, bạn sẽ sử dụng câu lệnh git pull
, để đưa code mới từ máy lên github bạn sẽ dùng câu lệnh git push
.
Bạn thử tham khảo thêm các bài chia sẻ dưới đây xem sao, mình nghĩ chúng có thể giúp bạn tìm hiểu thêm về git
, cũng như những khái niệm, những câu lệnh hữu dụng về git
đấy
- https://viblo.asia/p/co-ban-ve-git-roavrJdovRM
- https://viblo.asia/p/co-ban-ve-git-Eb85oXROK2G
- https://viblo.asia/p/tap-hop-nhung-cau-lenh-git-huu-dung-dWrvwWr2vw38
- https://viblo.asia/p/git-va-nhung-van-de-co-ban-vyDZOQ8R5wj
- https://viblo.asia/p/nhung-lenh-git-co-ban-can-nho-V3m5W1OyZO7
- https://viblo.asia/p/tim-hieu-ve-mot-so-khai-niem-trong-git-RQqKLgVN57z
@vuongthai95
Bạn cho mình hỏi câu này nghĩ là sao ạ : pull request bạn gửi lúc chiều đã được merge hay chưa?
--> thì pull request
và merge
nghĩa là gì ạ ? Và lúc chiều trước khi ra về mình mới chỉ thực hiện thao tác push
code lên thôi chứ có pull request
hay merge
gì đâu ạ ?
Tks bạn nhiều
@thangtd90 Em sẽ tìm hiểu thêm ở mấy bài này . Cám ơn a nhiều ạ.
@wiliamfeng bình thường mình làm việc trên github sẽ có 2 repository, 1 của công ty, 1 của cá nhân.
Khi push code lên là push lên cá nhân và tạo pull request để merge vào repo của công ty (cần người cấp cao hơn duyệt).
Và ý mình là nếu bạn push code lên vào code đó được merge rồi thì khi bạn clone về nó sẽ chứa code bạn push lên rồi.
Còn trong trường hợp của bạn thì mình hiểu là bạn push lên repo cá nhân, và khi về nhà thì bạn sẽ pull code về bằng lệnh git pull ten-repo ten-branch
@vuongthai95 tks bạn nhiều !
Ở công ty bạn làm như nào thì laptop cá nhân bạn làm y như vậy
@thanhhau Vấn đề như mình trình bày ở trên là đến tối về mình clone lấy được source ban chiều rồi nhưng sau khi làm tiếp xong mình không biết làm sao để cập nhật lại source code mới này lên gitHub, mình có thử bằng lệnh
$ git push origin master
mà thấy code trên GitHub nó không cập nhật gì cả .@wiliamfeng Bạn đọc về commit trên git nhé. Sau khi commit bạn sẽ push được lên github Chúc bạn thành công
@bs90 cám ơn bạn, để mình thử xem sao