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

Поділитися
Вставка
  • Опубліковано 2 сер 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 роки тому +50

    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 3 роки тому +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 !!!

  • @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!

  • @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é

  • @phuongho104
    @phuongho104 4 місяці тому +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.

  • @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 ạ

  • @luanbuivu9232
    @luanbuivu9232 3 роки тому

    rất hay. cảm ơn anh

  • @NhanThanh-kp7hc
    @NhanThanh-kp7hc 3 роки тому

    Dễ hiểu thật sự

  • @truongnguyennam1728
    @truongnguyennam1728 4 роки тому

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

  • @minhhieuao3506
    @minhhieuao3506 3 роки тому

    Quá hay anh ơi hehe

  • @atphan1824
    @atphan1824 2 місяці тому

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

  • @kulinh1773
    @kulinh1773 3 роки тому

    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

  • @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.

  • @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,

  • @quyendang2606
    @quyendang2606 2 роки тому

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

  • @ucle894
    @ucle894 10 місяців тому

    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

  • @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)

  • @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

    •  Рік тому

      Cứ override history cây git thì push force thôi :v

  • @huutinnguyen3075
    @huutinnguyen3075 2 роки тому

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

  • @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

  • @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

  • @and.t7069
    @and.t7069 2 роки тому

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

  • @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 !

  • @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ạ.

  • @coder197
    @coder197 Рік тому

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

  • @devq-2491
    @devq-2491 3 роки тому

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

  • @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 ạ

  • @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.

  • @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ứ

    •  3 роки тому +1

      Mình hay dùng Gitkraken, còn cái trang kia là công cụ học git link mình có để trong description nha

    • @nguyenminh15988
      @nguyenminh15988 3 роки тому

      @ cám ơn ông Dev nha, mình không phải dev mà cũng tìm hiểu sơ sơ để Dev nói gì hiểu ^^ video rất bổ ít

  • @angxuanat1042
    @angxuanat1042 Рік тому

    it's rly good valorant v hack, thanks

  • @jaytran247
    @jaytran247 2 роки тому

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

    •  2 роки тому

      Hầu hết các lần mình muốn update code từ remote về, mình sẽ dùng rebase trừ trường hợp change quá lớn thì mình mới merge.
      Thêm 1 cái nữa là nếu mình muốn chỉnh sửa lịch sử của branch.
      Và khi mình chuẩn bị push để pull request, thì mình luôn luôn rebase lên branch mình muốn merge vào.

  • @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

  • @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

  • @foxowovn
    @foxowovn Рік тому

    haha

  • @hieule1022
    @hieule1022 4 роки тому +1

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

  • @KDThai-ed7ky
    @KDThai-ed7ky 3 роки тому

    tin nhắn garena :))

  • @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.

  • @sonnguyenhoai8157
    @sonnguyenhoai8157 Рік тому

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

    •  Рік тому

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

  • @hieulonlen6929
    @hieulonlen6929 Рік тому

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

  • @nguyenthinh3789
    @nguyenthinh3789 3 роки тому

    12:25 anh ơi, sai command

    •  3 роки тому

      Úi sai chính tả :’(

  • @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.