THẢO LUẬN

thg 11 7, 2019 9:41 SA

Anh ơi ví dụ thứ 2 của v-for, nếu mà mình dùng v-if="!todo.isComplete" thì todo chưa được khai báo vậy nó phát sinh lỗi undefined sao ạ?

+1
thg 11 7, 2019 8:54 SA

Mong bạn ra phần 2 ạ!

+1
thg 11 7, 2019 8:30 SA

chào a, a cho e hỏi là func dispatch() có tùy thuộc vào version của lib flutter_bloc k ạ, hiện tại câu lệnh _getUsersBloc.dispatch(GetUsersEvent()); báo lỗi vì k có func dispatch().

0

xin cảm ơn bạn, mong bạn theo dõi các bài viết tiếp theo của mình nhé.

0
thg 11 7, 2019 6:08 SA

các command trên viết mà chưa có test đâu, nếu sai thì mình sẽ viết lại 😉)))

0
thg 11 7, 2019 6:03 SA

À, sai phần Cherry pick và Merge. Còn trong comment này mình chắc giải thích 1 tí cơ chế dịch từ https://git-scm.com/docs/git-cherry-pickhttps://git-scm.com/docs/git-diff để mọi người nắm.

Một số chức năng của git mong mọi người biết

  • **Git diff (so sánh 2 hash-commit với nhau) -- Cỏ thể xem là so sánh 2 trang thái
  • **Git cherry-pick (copy toàn bộ diff từ commit khác và gắn vào HEAD kèm luôn comment)
  • **Git merge (tìm điểm chung trong parent, sau đó nhận ra sự conflict -- Có thể nói trong dịp nào khác hoặc các bạn tự tìm hiểu)
  • **Git rebase (ko có option j khác) (là 1 chuỗi cherry-pick)

Sau đây mình lấy 1 ví dụ hình dung là thế này

git init

tạo file a.txt có nội dung "aaaa 5 chu a"

echo "aaaaa 5chu a" >> a.txt

git add . && git commit -m "Commit tạo file a"

Sau đây thay 5 chữ a thành 5 chữ b

rm a.txt & echo "bbbbb 5chu a" >> a.txt

git add . && git commit -m "Commit Đổi file a.txt từ a thành b"

Git diff 1 cái xem ntn

@@ -1 +1 @@

-aaaaa 5chu a

\ No newline at end of file

+bbbbb 5chu b

\ No newline at end of file

#Nhìn vào bạn biết là nó đã xóa 1 dòng và thêm 1 dòng (Có thể gọi ngắn là sửa 1 dòng)

Commit thêm vài cái để biết cherry-pick (commit rỗng ko cần add j)

git commit -m "commit cho vui 1"

git commit -m "commit cho vui 2"

Lúc này nhánh master sẽ ntn

【Commit tạo file a】 ---- 【Commit đổi file a.txt từ a thành b】-----【commit cho vui 1】------【commit cho vui 2】

Tạo 1 branch khác

git checkout -b other

xóa sạch file cho sạch branch

rm ./*.txt

git add .

git commit -m "Delete *.txt"

Xài thử cherry pick

git cherry-pick master~1

#Kết quả sẽ nhận ngay 1 commit sau Branch other là commit cho vui, chả có conlict. #GIải thích lệnh chery pick trên tính git diff của maste~1 và master~2 (kết quả là ko khác j) sau đó copy cái kết quả đó vào nhánh other

Xài thử cherry pick lần 2

git cherry-pick master~3

#Kết quả tạo file a và có nội dung "aaaaa 5 chu a", vì nó cũng dùng git diff so commit 【commit tạo file a】 và commit trc -> biết có sự thay đổi là tạo 1 file a.txt, lấy sự thay đổi này cho vào nhánh other và có kết quả như trên

Xài thử cherry pick lần 3 (để tạo conflict thì mở và sửa file a.txt

rm a.txt

echo "file nay da duoc sua" >> a.txt

git add .

git commit -m "tạo conflict"

git cherry-pick master~2

#Bị conlict, cần vào sửa file và dùng add -- commit lại

#GIải thích, lúc này git diff của master~3 là sửa chữ a thành chữ b (Cụ thể xóa 1 dòng là "aaaaa 5chu a" và thay thành "bbbbb 5chu a"). Git đã tìm dòng có nội dung "aaaaa 5 chu a" trong quá khứ (tìm commit chung parrent, xem merge advance đẻ hiểu rõ hơn) và đã biết nó đổi thành "file nay da duoc sua" , khi này git biết dc từ 1 dòng trong quá khử "aaaaa 5 chu a" mà bị biến thành 2 kết quả "file nay da duoc sua" hoặc "bbbbb 5 chu a" --> Do đó tạo 1 conflict và đã Hightligh đúng vị trí cần thiết.


Nói vậy ko biết bạn nào muốn rành về git thì tìm đọc git advance, còn nội dung bài viết sai là vì. Git merge KHÔNG CÓ COPY COMMIT như figure 10-5 của bạn. TIếng anh cũng ghi rõ đó là cherrypick ko phải merge. Còn so sánh Cherry-pick với merge ko hợp lý, để dễ hơn bạn tìm so sánh merge và rebase, sau đó rebase với cherry-pick. Vì merge vs rebase có điểm giống , rebase và cherry-pick cũng có điểm giống, merge với cherry-pick thì mình ko thấy giống gì

0
thg 11 7, 2019 5:30 SA

viết cho vui thôi ✌️

0

Các bài anh viết hay lắm cảm ơn a rất nhiều ạ ^^

+1
thg 11 7, 2019 5:09 SA

Cám ơn bài viết của anh, anh có thể viết một bài về HTTP status code không ạ, em có tìm hiểu trên mạng nhưng khá khó hiểu cho người mới ạ.

0

Chính xác, đọc cái tiêu đề rất hay, phỏng vấn hỏi toàn câu chỉ cẩn help là ra, thất bại =))

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 7, 2019 4:21 SA

@tuananhbfs oke cảm ơn bạn nha, để mình làm thử xem sao.

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 7, 2019 4:16 SA

hi,bạn có thể ví dụ 1 trường hợp cụ thể đc không 😄

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 7, 2019 4:13 SA

@vuongthai95 dạ e cảm ơn a:D

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 7, 2019 4:12 SA

@PhanNhuHuyen tức là nó sẽ tách ra phần api riêng và front-end riêng, ví dụ như viblo thì api dùng laravel, còn front-end thì dùng vuejs

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 7, 2019 4:10 SA

hi,tách riêng là sao anh nhỉ

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 7, 2019 4:04 SA

vậy mục đích của api là lấy dữ liệu trên server về đúng ko bạn

0

Uh, tiện còn con Pi đang đắp chiếu nên dựng đậy cho nó sống đời có ích em ạ 😂 Với cả Pi thì nó cũng tương tự PC bình thường thì với web developer sẽ dễ setup hơn là NodeMCU 😃

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 7, 2019 4:02 SA

oke ,minh cảm ơn ban 😄

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 7, 2019 3:19 SA

@lehoangnnx à sorry bạn. dùng import thay cho require nhé

0

mua con ras này mà dùng mỗi thế này hơi phí ko a :v thay vào đó e dùng NodeMCU có vẻ hợp lý hơn cho 1 module nhỏ như này đc a nhỉ 😁

+1
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í