Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
HOW	TO	USE	GIT
HƯỚNGDẪN SỬ DỤNG GIT	CHO NGƯỜI MỚI BẮT ĐẦU
Thanh Bùi
Khởi nghiệp, phát triển sản phẩm,
growth hacking.
Skype: thanhbuivan
Facebook: fb.com/mr.thanhbv
NHU	CẦU	THỰC	TẾ
• Cần	1	hệ	thống	lưu	trữ	tất	cả	các	thay	đổi	về	code	hàng	ngày.
• Để	sau	này	có	thể	xem	lại,	hoặc	phục	hồi...
LỊCH	SỬ	- 1.	LOCAL	VERSION	CONTROL
• Các	phiên	bản	chỉ	lưu	trên	máy	
người	làm
• Sử	dụng	lệnh	rcs	để	tạo	ra	các	phiên	
bản...
LỊCH	SỬ	- 2.	CENTRAL	VERSION	CONTROL	SYSTEM
• Lịch	sử	các	version,	thay	đổi	được	lưu	trữ	
ở	1	server.
• SVN	là	hệ	thống	ph...
LỊCH	SỬ	- 3.	DISTRIBUTED	VERSION	CONTROL	SYSTEM
• Giải	quyết	được	hết	các	vấn	đề	mà	các	
hệ	thống	cũ	hơn	mắc	phải.
• Các	h...
GIỚI	THIỆU	GIT
• Tốc	độ	cực	nhanh	(Dữ	liệu	được	nén	và	giải	nén	ở	hai	đầu	trc	khi	
truyền	đi).
• Kiến	trúc	rất	đơn	giản,	a...
CÁCH	THỨC	GIT	HOẠT	ĐỘNG
BẮT	ĐẦU	SỬ	DỤNG	GIT
Có	2	cách:
• Tạo	1	repo	(kho	chứa)	mới	trên	local
• Sao	chép	1	repo	(kho	chứa)	từ	một	máy	khác	(máy	ch...
3	CÁC	TRẠNG	THÁI	CỦA	1	FILE	TRONG	GIT
• Committed:	Committed	có	nghĩa	là	dữ	liệu	đã	
được	lưu	trữ	một	cách	an	toàn	trong	c...
CÁC	THAO	TÁC	CƠ	BẢN	TRONG	GIT
• git	add:	Thêm	một	file	(modified	hoặc	untracked)	vào	lần	commit	tiếp	theo
• git	commit:	Lư...
GIT	ADD	&	GIT	COMMIT
GIT	FETCH
PULL	(FETCH	+	MERGE)
TRƯỜNG	HỢP	MERGE	MÀ	BỊ	CONFLICT
• Việc	bị	conflict	khi	merge	là	bình	thường.	Không	có	gì	phải	lo	lắng.
• Cẩn	thận	check	qu...
PHỤC	HỒI
• git	checkout:	Lấy	về	file	từ	bất	kỳ	commit	nào	trong	local	repo	(sau	
khi	ng	dùng	sửa	thì	phải	tạo	branch	mới)....
.GITIGNORE
• Trong	thư	mục	làm	việc,	có	những	gì	mà	ko	biết	git	theo	dõi,	kiểm	
soát.	Ví	dụ:	các	file	tạm,	file	log,	tmp.....
BRANCH	– RẼ	NHÁNH	TRONG	GIT
• Nhánh	giúp	1	dự	án	được	tổ	chức	tốt	hơn.
• Có	nhiều	cách	tổ	chức	nhánh.	Nhưng	phổ	biến	nhất	...
VÍ	DỤ	VỀ	1	SƠ	ĐỒ	RẼ	NHÁNH	TRONG	GIT
VÍ	DỤ	VỀ	1	DỰ	ÁN	CỤ	THỂ
- Commit	C0	là	commit	khởi	tạo	dự	án.
- Đến	commit	C1	thì	phát	hệ	thống	có	lỗi	(issue	91)
- Tạo	br...
VÍ	DỤ	VỀ	1	DỰ	ÁN	CỤ	THỂ
- Bây	giờ,	giả	sử	bạn	chọn	cách	giải	quyết	thứ	hai	
(branch	iss91v2).	Issue	lúc	này	đã	được	fix	xo...
GIT	CLIENT:	SOURCE	TREE,	SMARTGIT,	TOWER
WORK	FLOW
• Mỗi	người	có	1	branch	để	làm	việc	riêng.
• Với	những	task	lớn,	cần	commit	nhiều	lần,	thời	gian	làm	việc	kéo	
d...
MỘT	VÀI	LƯU	Ý	VỚI	UNITY
• Change	Version	Control	Mode	to	Visible	Meta	Files
• Change	Asset	Serialization	Mode	to Force	Tex...
UNITY3D	GITIGNORE
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
#	Autogenerated	VS/MD	solution	and	project	files
*.csproj
*.u...
Upcoming SlideShare
Loading in …5
×

Sử dụng GIT cho người mới bắt đầu (Tiếng Việt)

4,291 views

Published on

Sử dụng GIT cho người mới bắt đầu (Tiếng Việt). Slide được chia sẻ tại công ty Jupitech.

Đặc biệt là sử dụng git với Unity 3D.

Tác giả không chịu trách nhiệm về mức độ chuẩn xác với các nội dung có trong slide.

Published in: Technology
  • Login to see the comments

Sử dụng GIT cho người mới bắt đầu (Tiếng Việt)

  1. 1. HOW TO USE GIT HƯỚNGDẪN SỬ DỤNG GIT CHO NGƯỜI MỚI BẮT ĐẦU
  2. 2. Thanh Bùi Khởi nghiệp, phát triển sản phẩm, growth hacking. Skype: thanhbuivan Facebook: fb.com/mr.thanhbv
  3. 3. NHU CẦU THỰC TẾ • Cần 1 hệ thống lưu trữ tất cả các thay đổi về code hàng ngày. • Để sau này có thể xem lại, hoặc phục hồi về một thời điểm trong quá khứ. • Hai cái đầu thì tốt hơn 1 cái đầu. • Bất kỳ ai đều có thể tham gia, những ng khác trong team biết chính xác từng ng đã làm gì, thay đổi gì.
  4. 4. LỊCH SỬ - 1. LOCAL VERSION CONTROL • Các phiên bản chỉ lưu trên máy người làm • Sử dụng lệnh rcs để tạo ra các phiên bản • Rất khó để phối hợp trong nhóm nhiều người • Đã lỗi thời & hiện tại không còn ai sử dụng
  5. 5. LỊCH SỬ - 2. CENTRAL VERSION CONTROL SYSTEM • Lịch sử các version, thay đổi được lưu trữ ở 1 server. • SVN là hệ thống phổ biến nhất theo phương pháp này. • Vấn đề phát sinh: • Khi server bị hỏng, mất hết dữ liệu. • Không ai cộng tác được với những người còn lại, không lưu đc các phiên bản nếu ko kết nối đc đến máy chủ • Tốc độ chậm
  6. 6. LỊCH SỬ - 3. DISTRIBUTED VERSION CONTROL SYSTEM • Giải quyết được hết các vấn đề mà các hệ thống cũ hơn mắc phải. • Các hệ thống phổ biến sử dụng phương pháp này: Git, hg…
  7. 7. GIỚI THIỆU GIT • Tốc độ cực nhanh (Dữ liệu được nén và giải nén ở hai đầu trc khi truyền đi). • Kiến trúc rất đơn giản, ai cũng có thể học & dùng được. • Phân tán hoàn toàn. • Đã được kiểm nghiệm & sử dụng trong hầu hết các công ty. • Cực mạnh trong việc phân nhánh.
  8. 8. CÁCH THỨC GIT HOẠT ĐỘNG
  9. 9. BẮT ĐẦU SỬ DỤNG GIT Có 2 cách: • Tạo 1 repo (kho chứa) mới trên local • Sao chép 1 repo (kho chứa) từ một máy khác (máy chủ, bitbucket, github…)
  10. 10. 3 CÁC TRẠNG THÁI CỦA 1 FILE TRONG GIT • Committed: Committed có nghĩa là dữ liệu đã được lưu trữ một cách an toàn trong cơ sở dữ liệu • Modified: Modified có nghĩa là bạn đã thay đổi tập tin nhưng chưa commit vào cơ sở dữ liệu • Staged: là bạn đã đánh dấu sẽ commit phiên bản hiện tại của một tập tin đã chỉnh sửa trong lần commit sắp tới => Điều này tạo ra ba phần riêng biệt của một dự án sử dụng Git: thư mục Git, thư mục làm việc, và khu vực tổ chức (staging area).
  11. 11. CÁC THAO TÁC CƠ BẢN TRONG GIT • git add: Thêm một file (modified hoặc untracked) vào lần commit tiếp theo • git commit: Lưu các thay đổi vừa tạo ra (bằng lệnh add) vào kho chứa (repo) trên máy mình • git pull = fetch + merge • git fetch: Kéo dữ liệu từ kho chứa trên server xuống kho chứa ở máy của bạn • git merge: Merge dữ liệu. Mặc định là merge dữ liệu từ lần commit gần nhất trên máy (HEAD) với dữ liệu lần commit mới nhất trên server • git push: Đồng bộ hóa kho chứa trên máy & kho chứa trên server (bitbucket) • git log: Xem lại lịch sử của 1 file/branch
  12. 12. GIT ADD & GIT COMMIT
  13. 13. GIT FETCH
  14. 14. PULL (FETCH + MERGE)
  15. 15. TRƯỜNG HỢP MERGE MÀ BỊ CONFLICT • Việc bị conflict khi merge là bình thường. Không có gì phải lo lắng. • Cẩn thận check qua lần lượt các file bị conflict, merge thủ công bằng tay. (Sử dụng công cụ để merge). • Sau khi merge xong thì mark as resolved trong Source Tree. • Tiếp theo là commit các thay đổi đó.
  16. 16. PHỤC HỒI • git checkout: Lấy về file từ bất kỳ commit nào trong local repo (sau khi ng dùng sửa thì phải tạo branch mới). • git reset. Có 3 kiểu. • hard: Bỏ qua hết các thay đổi trong máy (xóa hết các commit trc đó). Thư mục làm việc sẽ giống như thư mục làm việc ở commit vừa reset. • mixed: Chỉ reset index, giữ lại các thay đổi hiện tại. Có thể commit lại. • soft: Giữ lại tất cả.
  17. 17. .GITIGNORE • Trong thư mục làm việc, có những gì mà ko biết git theo dõi, kiểm soát. Ví dụ: các file tạm, file log, tmp... • => Có thể sử dụng .gitignore để thông báo cho git biết là ko được track các file này. • .gitignore nằm ở thư mục gốc của dự án
  18. 18. BRANCH – RẼ NHÁNH TRONG GIT • Nhánh giúp 1 dự án được tổ chức tốt hơn. • Có nhiều cách tổ chức nhánh. Nhưng phổ biến nhất là: • 1 nhánh dành cho các phần code đã chạy ổn định (master, production) • 1 nhánh dành cho các phần code đang phát triển (beta, testing) • Các nhánh topic: dành cho từng task, issue, thậm chí là các idea, hướng phát triển. Sau khi developer hoàn thành sẽ merge vào nhánh testing. Sau khi test xong thì merge tiếp vào nhánh production.
  19. 19. VÍ DỤ VỀ 1 SƠ ĐỒ RẼ NHÁNH TRONG GIT
  20. 20. VÍ DỤ VỀ 1 DỰ ÁN CỤ THỂ - Commit C0 là commit khởi tạo dự án. - Đến commit C1 thì phát hệ thống có lỗi (issue 91) - Tạo branch iss91 để xử lý lỗi đó. - TRong quá trình xử lý issue 91, commit C4 thì lại phát hiện ra 1 cách xử lý tốt hơn => tạo branch iss91v2 để phát triển theo hướng mới trong khi vẫn duy trì làm theo cách cũ trên iss91 - Trong quá trình phát triển dự án, đến commit C10 thì nghĩ ra 1 số idea rất hay, nhưng bạn không chắc nó có đc cả team đồng ý hay không?
  21. 21. VÍ DỤ VỀ 1 DỰ ÁN CỤ THỂ - Bây giờ, giả sử bạn chọn cách giải quyết thứ hai (branch iss91v2). Issue lúc này đã được fix xong. - Bạn trình bày các ý tưởng cho đồng nghiệp và được họ đồng ý (branch dumbidea) - Lúc này bạn có thể merge branch dumbidea & branch iss91v2 vào branch master & tiếp tục công việc chính.
  22. 22. GIT CLIENT: SOURCE TREE, SMARTGIT, TOWER
  23. 23. WORK FLOW • Mỗi người có 1 branch để làm việc riêng. • Với những task lớn, cần commit nhiều lần, thời gian làm việc kéo dài => tạo riêng branch cho nó. • Commit thường xuyên (không nhất thiết phải push). Cứ xong 1 function, 1 phần tính năng nào đấy thì lại commit. • Khi xong một tính năng thì merge lại vào branch master để những người khác có thể fetch về.
  24. 24. MỘT VÀI LƯU Ý VỚI UNITY • Change Version Control Mode to Visible Meta Files • Change Asset Serialization Mode to Force Text • Chỉ 1 người làm việc trên 1 scene tại 1 thời điểm • Sử dụng prefabs để lưu game object thay cho các file scene.
  25. 25. UNITY3D GITIGNORE /[Ll]ibrary/ /[Tt]emp/ /[Oo]bj/ /[Bb]uild/ # Autogenerated VS/MD solution and project files *.csproj *.unityproj *.sln *.suo *.tmp *.user *.userprefs *.pidb *.booproj # Unity3D generated meta files *.pidb.meta # Unity3D Generated File On Crash Reports sysinfo.txt

×