Cách sử dụng Git trong THỰC TẾ | Github

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.ค. 2024
  • Hế lô hế lô, Ông dev đây!
    Learn git branching: learngitbranching.js.org/
    Trong video này mình sẽ nói về tất cả những thứ mình biết về git:
    0:00 Mở đầu
    3:29 Git init
    4:33 Git status
    5:13 Git add và staging
    8:01 Git commit
    9:17 Git commit --amend
    10:39 Git push
    12:19 Git push --force
    15:09 Git log
    16:15 Giới thiệu Branching trong git
    17:34 Git branch
    17:57 Git checkout
    19:25 Git merge
    20:45 Giải thích git merge fast forward
    21:49 Git merge no fast forward
    23:02 Git branch -d (xóa branch)
    23:25 Git rebase
    24:41 Git rebase --preserve-merges(Trường hợp sử dụng)
    25:20 Git reset
    26:23 Git rebase --preverse-merges
    27:15 Pull request
    29:45 Git squash
    31:49 Git cherry-pick
    33:21 Bái bai :v
    Thực ra là còn vài cái nữa, nhưng video dài qué @@
    Nếu các bạn muốn có thêm thì comment mình sẽ làm thêm 1 phần nữa nhá.
    -- Để xem những video về lập trình và gaming --
    Nhấn vào đây để theo dõi kênh mình nhé: tinyurl.com/SubscribeOngDev
    -- Blog của mình --
    blog.ongdev.com
    -- Ủng hộ Ông Dev --
    -- Facebook page của mình --
    / ongdevvuitinh
    Cảm ơn các bạn đã quan tâm theo dõi
    #ôngdev #git #github

ความคิดเห็น • 91

  •  4 ปีที่แล้ว +51

    Cho mấy ông xài dth mà muốn đi tắt -_-
    3:29 Git init
    4:33 Git status
    5:13 Git add và staging
    8:01 Git commit
    9:17 Git commit --amend
    10:39 Git push
    12:19 Git push --force
    15:09 Git log
    16:15 Giới thiệu Branching trong git
    17:34 Git branch
    17:57 Git checkout
    19:25 Git merge
    20:45 Giải thích git merge fast forward
    21:49 Git merge no fast forward
    23:02 Git branch -d (xóa branch)
    23:25 Git rebase
    24:41 Git rebase --preserve-merges(Trường hợp sử dụng)
    25:20 Git reset
    26:23 Git rebase --preverse-merges
    27:15 Pull request
    29:45 Git squash
    31:49 Git cherry-pick
    33:21 Bái bai :v

  • @diepmyduong
    @diepmyduong 2 ปีที่แล้ว +14

    Một chủ đề về git mà mình nghĩ sẽ rất hay đó là về việc quản lý nhiều git được fork, mirror từ 1 git gốc. Mình ví dụ cụ thể hơn là giả sử mình có 1 project tạm gọi là project Gốc. Và sau 1 thời gian mình clone project bằng cách fork, mirror project này ra thành nhiều dự án khác nhau (tạm gọi là project Clone). Mỗi dự án được clone ra sẽ có.1 vài điều chỉnh, chỉnh sửa, thêm hoặc xoá bớt tính năng các thứ. Rồi 1 vài trường hợp sau có thể xuất hiện:
    1/ Project Gốc tiếp tục được phát triển thêm tính năng mới, fix bug code cũ, refactor các thứ, bla bla bla... Và mình muốn những thay đổi này, sẽ áp dụng cho tất cả những project được clone ra từ Project Gốc này đều có được những thay đổi ấy.
    2/ Project Clone được phát triển và có những thay đổi, cải tiến, fix bug và mình muốn project Gốc cũng có những cập nhật cải tiến này để áp dụng cho các Project Clone khác sau này.
    - Mình nghĩ 2 trường hợp này thì việc áp dụng git như thế nào để giải quyết các vấn đề trên sẽ là 1 chủ đề khá thú vị. Mong nhận đc video chia sẻ từ anh sớm :D

  • @quangcao2997
    @quangcao2997 4 ปีที่แล้ว +6

    mặc dù ngày nào cũng commit, nhưng vẫn xem lại, sợ có điều gì mình còn bỏ qua =)))
    những video của a rất bổ ích !!!
    thank you !!!

  • @phuongho104
    @phuongho104 3 หลายเดือนก่อน +1

    Cảm ơn bạn đã hướng dẫn rất cụ thể nhưng nếu được bạn hãy luyện cách diễn đạt rõ ràng, rành mạch hơn. Có thể cách diễn đạt của bạn rất dễ hiểu với người đã biết các ngôn ngữ lập trình, còn lính mới như mình suýt hiểu nhầm một vài câu lệnh mà bạn nói. Thân ái.

  • @phananh8589
    @phananh8589 4 ปีที่แล้ว

    so like video của ông Dev, mình thật sự thấy có 2 điểm rất đáng xem của channel của bạn: 1 tính thực tế, ứng dụng cao. 2 có những kiến thức abit advance làm cho interesting hơn, học đươc nhiều thứ hơn. thank, chúc bạn phát huy và có nhiều subcribers hơn!

  • @nguyenmanhcuong458
    @nguyenmanhcuong458 3 ปีที่แล้ว +1

    hay quá anh ơi. mặc dù em không hiểu lắm. nhưng cách làm video của a rất ok ạ.
    Em cảm ơn anh ạ

  • @nguyenthinh3789
    @nguyenthinh3789 3 ปีที่แล้ว

    Thực sự dễ hiểu cảm ơn anh nhiều

  • @DungTran-wi1id
    @DungTran-wi1id 4 ปีที่แล้ว

    Cảm ơn ông Dev nhiều nhé

  • @cuocsongquanhta5398
    @cuocsongquanhta5398 2 ปีที่แล้ว +2

    Cảm ơn bạn vì đã làm và video rất hay. Nhưng mình có góp ý là bạn nói đến cái nào thì bạn nên nói rõ bản chất của nó để làm gì để người mới dễ hiểu hơn nha.

  • @atphan1824
    @atphan1824 หลายเดือนก่อน

    quá dễ hiểu a ơi , tks a

  • @minhhieuao3506
    @minhhieuao3506 2 ปีที่แล้ว

    Quá hay anh ơi hehe

  • @truongnguyennam1728
    @truongnguyennam1728 4 ปีที่แล้ว

    cám ơn ô dev :3 :3 :3

  • @NhanThanh-kp7hc
    @NhanThanh-kp7hc 3 ปีที่แล้ว

    Dễ hiểu thật sự

  • @luanbuivu9232
    @luanbuivu9232 3 ปีที่แล้ว

    rất hay. cảm ơn anh

  • @MinhKhanh-EternAI
    @MinhKhanh-EternAI ปีที่แล้ว

    Thank you so much for this!

  • @iamminhnhat
    @iamminhnhat 4 ปีที่แล้ว

    Hay lắm ông dev ui :3

    •  4 ปีที่แล้ว +1

      Hê hê, cần học về cái gì chung chung cứ nói, a giúp đc thì giúp :v

  • @kulinh1773
    @kulinh1773 3 ปีที่แล้ว

    Cảm ơn anh

  • @nguyenkhai2094
    @nguyenkhai2094 3 ปีที่แล้ว

    9:58 cái này nó dùng vim á mng, nhấn I để edit file, thoát thì :wq(vừa thoát vừa save)

  • @huytranquang6230
    @huytranquang6230 ปีที่แล้ว

    bổ x quá anh giai

  • @anle-ku8wi
    @anle-ku8wi 4 ปีที่แล้ว

    nice

  • @hungcao1342
    @hungcao1342 2 ปีที่แล้ว

    nice !

  • @tinatran9159
    @tinatran9159 2 ปีที่แล้ว

    anh ơi, trong phần git rebase preseve merge á, nếu làm như vậy thì nhánh B11 sẽ đứng 1 mình, nếu mình tiếp tục develop trên nhánh B11 thì có ổn ko anh,

  • @quyenangtran450
    @quyenangtran450 2 ปีที่แล้ว

    Ad sử dụng tool gì để quản lý source và history với git vậy

  • @huutinnguyen3075
    @huutinnguyen3075 2 ปีที่แล้ว

    Nói về git rebase commit vs git merge đi a

  • @chienbuiminh6475
    @chienbuiminh6475 4 ปีที่แล้ว

    hay quá, em đã share tới 20 người, không biết em được hoa hồng bao nhiêu ạ

    •  4 ปีที่แล้ว

      :D xịn zợ :D tks nha.

  • @minhluanvu7918
    @minhluanvu7918 ปีที่แล้ว +1

    git push --force dùng trong trường hợp cụ thể sau:
    Thí dụ bạn vừa làm việc ở nhà và ở công ty trên 2 máy nhưng cùng 1 branch
    Ở nhà bạn commit gì đó trước khi đi làm
    Lên cty bạn không nhớ nên đầu giờ làm không thực hiện git pull
    Làm 1 lúc, commit và push thì bị báo lỗi. Nhưng bạn muốn override lại commit ở nhà ==> Dùng git push --force

  • @thinh0coi
    @thinh0coi 3 ปีที่แล้ว +1

    kiến thức anh chia sẻ rất hay, Tks. Góp ý tí là lúc anh nói anh bớt quay cái ghế, người xem chắc cũng chóng mặt lắm :D

    •  3 ปีที่แล้ว +3

      Ok mình sẽ cố gắng cải thiện. Nhưng có 1 điều đó là, channel của mình làm video không chuẩn bị content, không có script, chỉ có topic để mọi thứ nó tự nhiên nhất và đi ra từ trong đầu mình, chứ không phải tìm kiếm, research ở đâu cả. Nên khi mình làm video, mình sẽ phải tự suy nghĩ trong đầu ra xem cần phải nói về cái gì, nên mình cần một cảm giác thoải mái nhất để làm tốt. Nên mình hay xoay xoay lắc lắc vậy á :D

    • @locthanh7057
      @locthanh7057 2 ปีที่แล้ว

      @ cứ thoải mái đi a ơi

  • @mindset5228
    @mindset5228 4 ปีที่แล้ว

    Chưa làm dự án nào nên em mới chỉ tìm hiểu tới clone, push, pull, ... mấy cái cơ bản nữa. Đợi bao h code ngon thì mới tìm hiểu mấy cái kia thêm. Ko bt có nên xem video của ô dev ko nhỉ... sợ tốn time ý mà :))

    •  4 ปีที่แล้ว

      Coi đi mà chuẩn bị cho sau này :D

  • @quocanhle5217
    @quocanhle5217 2 ปีที่แล้ว

    Góp ý làm clip hướng dẫn đừng đổi màn hình camer mặt bạn vs màn hình máy tính nhiều vậy, ng xem rất khó tập trung. Cái mọi ng cần là ví dụ minh hoạ.

  • @learningcode2463
    @learningcode2463 4 ปีที่แล้ว

    Chào a, video của a rất hữu ích ạ, nhưng e lun lẫn lộn và thường xuyên làm conflic code. A cho e hỏi là : Dưới local, sau khi merge xong 1 nhánh feature vào nhánh master với lệnh --no-ff thì nên xóa nhánh feature đó ko, hay là vẫn giữ nguyên lại để track lại history khi cần thiết ? Có cần thiết phải push cả 1 nhánh feature lên remote không ? hay là chỉ dưới local, merge nó vào master trước khi push master lên remote ? A có thể làm 1 video nhỏ để nói chi tiết hơn về các trường hợp sử dụng branch trong dự án thật mà a đã làm không ? Thanks a rất nhiều, chúc a nhiều sức khỏe để đóng góp cho cộng đồng coder.

    •  4 ปีที่แล้ว

      LearningCode thực ra thì cứ có commit thì a sẽ push thẳng lên remote, còn khi merge thì khi nào merge xong mình sẽ xoá nhánh feature, kể cả local và remote. Về merge, mình có thể merge dưới local, rồi push lên ref để review, giống như Gerrit, còn nếu dùng github, bitbucket thì mình sẽ push feature và tạo PR ở trên remote.

    • @learningcode2463
      @learningcode2463 4 ปีที่แล้ว

      @ Thanks you so much !

  • @coder197
    @coder197 ปีที่แล้ว

    bấm "a" để edit là shortcut của Vim anh ạ

  • @ucle894
    @ucle894 9 หลายเดือนก่อน

    A cho e hỏi ..e muốn lấy link github cá nhân of mk thì vào mục nào a

  • @and.t7069
    @and.t7069 2 ปีที่แล้ว

    ông dev cũng chơi lmht nữa kìa =))

  • @devq-2491
    @devq-2491 3 ปีที่แล้ว

    e có để ý là có garena bên máy đằng sau anh :D

  • @angxuanat1042
    @angxuanat1042 ปีที่แล้ว

    it's rly good valorant v hack, thanks

  • @nguyenminh15988
    @nguyenminh15988 3 ปีที่แล้ว

    Bạn có thể chia sẽ chương trình hiện cái tree git của bạn đang sử dụg được chứ

  • @juljulie706
    @juljulie706 2 ปีที่แล้ว

    Anh ơi cho em hỏi trường hợp này với ạ
    Em có 1 nhánh develop. Em add 1 file* vừa edit vào branch develop này.
    Nhưng leader bảo là không được đưa lên trực tiếp mà phải đặt nhánh riêng và đăng ký pull request.
    Em tạo 1 branch fixbug mới, commit file *và chạy lệnh git push -u origin fixbug
    Sau đó login vào bitbucket tạo PR, thì trên hiển thị lỗi xảy ra lỗi trong quá trình tạo PR. Có phải do em đã add vào branch develop trước đó không ạ?

    •  2 ปีที่แล้ว

      Nó báo lỗi như nào nhỉ, phải biết nó lỗi gì thì mới biết trường hợp đc ấy

    •  2 ปีที่แล้ว +1

      Và nếu em đã push lên develop, thì phải nói vs a lead, và làm 1 cái revert commit

    • @juljulie706
      @juljulie706 2 ปีที่แล้ว

      @ e chỉ add lên develop nhưng lại submit lên nhánh mới. E thử pull request lại vài lần thì đã thành công. Cũng không hiểu nguyên nhân tại sao luôn.
      Còn về branch develop e cho reset lại phần đã add.

  • @thehien.
    @thehien. 4 ปีที่แล้ว +1

    tiếng nhạc nền hơi to anh ạ

  • @hieule1022
    @hieule1022 4 ปีที่แล้ว +1

    a lm thêm video về git ci/cd với docker đi a :))

    • @futfcfantastic
      @futfcfantastic 4 ปีที่แล้ว

      hóng series này từ #ongDev ^^

  • @atnguyen-ul8vs
    @atnguyen-ul8vs 3 ปีที่แล้ว

    em pull về bị conflict mà nhánh ở visual code nó kiểu a9787b96(rebasing), em resolve conflict @@ anh explain cho em được k ạ

    •  3 ปีที่แล้ว +1

      Cái này thì 2 cái version, 1 cái trên remote, và cái ở local, có những change ở cùng chỗ, thì nó sẽ conflict. Thì e cứ vào file, xem chỗ nào conflict thì sửa thôi, conflict cơ bản là chọn code của version nào. Chọn xong thì add vào staged. Sau đó git rebase -continue

    • @atnguyen-ul8vs
      @atnguyen-ul8vs 3 ปีที่แล้ว

      @ dạ em cảm ơn ạ

  • @ucmanhly8404
    @ucmanhly8404 3 ปีที่แล้ว

    vậy khi merge 2 nhánh khác nhau mà 2 nhánh đó có cùng file nhưng khác code thì làm sao để chọn cái nào bỏ cái nào vậy anh

    •  3 ปีที่แล้ว

      Cái đó tuỳ vào code thôi e, có lúc thì chọn 1 bên, nhưng có lúc thì phải chọn cả 2 xong rồi chỉnh sửa lại. Nên là tuỳ trường hợp á e.

    • @ucmanhly8404
      @ucmanhly8404 3 ปีที่แล้ว

      @ anh có thể nói cả hai cách được không ạ. nếu chọn 1 bên thì mình làm như nào còn nếu chọn cả 2 thì mình làm như nào ạ

    •  3 ปีที่แล้ว

      @@ucmanhly8404 đọc code mà sửa thôi e, xoá cái ko cần, giữ cái cần

    • @ucmanhly8404
      @ucmanhly8404 3 ปีที่แล้ว

      @ à em tưởng mình có thể thao tác cái này bằng lệnh git được =)) oke anh

  • @nguyentientai384
    @nguyentientai384 4 ปีที่แล้ว

    làm thế nào để có con sói trong git bash kia hả ông dev

    •  4 ปีที่แล้ว

      Mình dùng iTerm2, bạn có thể vào Profiles -> Edit Profiles -> Windows -> Background Image -> Enable lên nó sẽ bảo mình chọn dir cho bg image.

  • @jaytran247
    @jaytran247 2 ปีที่แล้ว

    thực tế thì trong trường hợp nào sẽ dùng rebase ?

  • @nhatacoustic3633
    @nhatacoustic3633 3 ปีที่แล้ว

    Ở local mình xóa 1 nhánh rồi, làm sao để trên github đồng bộ vậy anh?

    •  3 ปีที่แล้ว +1

      Git push origin -delete ten-branch

    • @nhatacoustic3633
      @nhatacoustic3633 3 ปีที่แล้ว

      @ em lỡ xóa cái branch rồi giờ không còn để push

    •  3 ปีที่แล้ว

      @@nhatacoustic3633 e push thử chưa :v nó có lỗi ko?

    • @nhatacoustic3633
      @nhatacoustic3633 3 ปีที่แล้ว +1

      @ Được rồi nha anh, hồi chiều delete biết thiếu 1 dấu trừ, tks anh nha

    •  3 ปีที่แล้ว +1

      ối :v

  • @foxowovn
    @foxowovn ปีที่แล้ว

    haha

  • @linhkienienthoai4435
    @linhkienienthoai4435 4 ปีที่แล้ว +1

    videos dành cho người biết tiếng anh dm :(((

    •  4 ปีที่แล้ว +1

      :D Những từ Tiếng Anh trong video này là những từ rất cơ bản, hoặc là keyword trong lập trình
      Nếu giờ dev mà không biết được những từ này thì sẽ khá là thiệt thòi đấy.

  • @KDThai-ed7ky
    @KDThai-ed7ky 3 ปีที่แล้ว

    tin nhắn garena :))

  • @sonnguyenhoai8157
    @sonnguyenhoai8157 ปีที่แล้ว

    lmao i was tNice tutorialnking ths sa tNice tutorialng then i saw ur comnt

    •  ปีที่แล้ว

      Nói gì zị chời :v

  • @nguyenthinh3789
    @nguyenthinh3789 3 ปีที่แล้ว

    24:41 C12' và C13' là gì v ạ

    •  3 ปีที่แล้ว

      Nghĩa là Commit số 12 và 13, nhưng người ta để ' và giữ cái commit cũ(để mờ) để mình dễ hình dung á

    • @nguyenthinh3789
      @nguyenthinh3789 3 ปีที่แล้ว

      @ có nghĩa nó chỉ tượng trưng thôi phải không ạ

    •  3 ปีที่แล้ว +1

      @@nguyenthinh3789 ừ đúng r e

  • @nguyenthinh3789
    @nguyenthinh3789 3 ปีที่แล้ว

    12:25 anh ơi, sai command

    •  3 ปีที่แล้ว

      Úi sai chính tả :’(

  • @hieulonlen6929
    @hieulonlen6929 ปีที่แล้ว

    hề chưa đii làm nên chưa hiểu j!!!

  • @nguyenthaihien1704
    @nguyenthaihien1704 3 ปีที่แล้ว

    e mới tìm hiểu Git, xem lần đầu tiên về Git, chẳng hiểu gì! :)))

    •  3 ปีที่แล้ว +1

      Xem hết video này mà chẳng hiểu gì hả e :’(

    • @huyttvlog
      @huyttvlog 3 ปีที่แล้ว +1

      @ mình cũng mới ko hiểu gì cả. Bạn dùng nhiều thuật ngữ như cho ng đã biết và chưa diễn giải bản chất git nên càng xem càng bị xoắn não.

    •  3 ปีที่แล้ว +1

      @@huyttvlog Ngay đầu video mình đã giải thích về git rồi nhỉ, và những cái thuật ngữ trong video đều là những thuật ngữ rất cơ bản trong lập trình. Và mỗi thuật ngữ mình nói ra đều có giải thích đi kèm mà nhỉ @@ Nếu không thì sr bạn vì khả năng diễn đạt của mình yếu.

  • @TungNguyen-fd1rh
    @TungNguyen-fd1rh 2 ปีที่แล้ว

    Video này cho người mới thì khó hiểu; còn cho người cũ thì nhàm. Nói chung rất vớ vẩn 🤭🤭🤭

  • @confessionspp3725
    @confessionspp3725 3 ปีที่แล้ว

    Lúc tạo repo thì file readme nằm ở main, lúc sau em push code lên nằm ở master, có ảnh hưởng gì không anh và cách xử lí để tất cả vào main được không ạ

    •  3 ปีที่แล้ว

      Em dùng 1 trong 2 thôi, thường thì người ta sẽ có 1 cái gọi là base branch, thì có thể là main, hoặc là master, nếu giờ em có code ở master, và em muốn dùng main thì em có thể merge vào. Github có cái gọi là pull request.