-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNote about Git.txt
135 lines (83 loc) · 4.01 KB
/
Note about Git.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
+ git init : Tạo local repo mới
+ git status : Hiện trạng thái
+ git add [<tên file>] Thêm và check file để commit, thêm file vào Staging area
+ git commit [-m "<Nội dung commit>"]: Commit file vào repo
+ git config --global user.email "<email>" :
+ git config --global user.name "<tên>" :
+ git log : Hiện danh sách lịch sử commit
+ git show [<id của commit>]: Hiện nội dung của commit
+ git diff : Xem thay đổi của file đã được modify
+ Working directory : Thư mục làm việc
+ Staging area : Khi add thì file trong Working directory sẽ được thêm vào Staging
+ Git repository : Lưu tập hợp các commit
+ gitk : GUI cho Git
+ git checkout -- <file> : Hủy bỏ thay đổi trong Working directory
+ git reset HEAD <file> : Hủy bỏ việc add file trong Working directory vào Staging
+ git restore <file> : Hủy bỏ thay đổi trong Working directory
+ git restore --staged <file> : Hủy bỏ việc add file trong Working directory vào Staging
+ git checkout -b <branch_name> : Tạo nhánh mới
+ git checkout <branch_name> : Chuyển sang nhánh khác
+ git branch : Xem sanh sách tên các nhánh
+ git merge <branch_name> : Merge branch mới vào branch hiện tại. Nếu không merge tự động được thì cần merge thủ công:
. git status : Xem trạng thái merge
. Sửa file bị conflict
. git commit -m "<nội dung commit>" : Giải quyết conflict
. git log --merge : xem log
. git merge --abort : Hủy bỏ merge và trở về trạng thái trươc khi merge
+ git branch -D <branch_name> : Xóa branch
+ git reset --soft <to_id_commit> : Chuyển các commit trước commit id vào Staging area
+ git reset --mixed <to_id_commit> : Chuyển các commit trước commit id vào Working directory
+ git reset --hard <to_id_commit> : Xóa các commit trước commit id
+ git revert <commit_id> : Tạo commit mới dảo ngược commit id
+ .gitignore : Chứa các file và thư mục cần bỏ qua trong Working directory
+ git remote add origin <link_to_repo_github> : Thêm remote repo
+ git remove -v : Xem danh sách repo
+ git push : Đưa code lên remote repo
+ git push -u origin master : Push lần đầu tiên lên remote repo
+ git config --global credential.helper store : Lưu thông tin đăng nhập vào ~./git-credential, không được mã hóa.
+ git config --global credential.helper "cache --timeout=18000" : Lưu thông tin đăng nhập vào ram trong 18000 phút
+ git clone <link> : Clone một remote repo về máy
+ get pull : Tải thay đổi từ remove repo về máy
+ Pull request
+ 1. git checkout -b <feature_branch> :
+ 2. git push origin <branch> : Đưa code lên github branch cụ thể
+ 3. Create a pull request on Github :
+ 4. Review code :
4.1 Review code online (Github)
4.2 Fetch branch into local to test offline (optional)
. git fetch origin <tên branch>
. git checkout <tên branch>
. git checkout master
. Xóa branch test đi và pull từ remote
4.3 Approve the pull request
+ 5. Merge to master :
+ Reslove conflicts
+ Khi nào sảy ra?
1. Thay đổi một file + cùng một số dòng
2. A xóa file X, B thay đổi file
+ Cách giải quyết 1:
1. Dùng "git rebase":
git rebase <tên branch master>
2. Giải quyết conflict
Giải quyết conflict trên code
git add .
git rebase --continue
3. Push lên remote repo với tùy chọn -f
git push origin <tên branch> -f
+ Cách giải quyết 2:
1. Merge
git merge master
2. Giải quyết conflict
Giải quyết conflict trên code
git add .
git commit -m "<nội dung thay đổi>"
3. Push lên remote repo
git push origin <tên branch>
+ Fork repo
+ README.md file: Markdown cheatsheet, Markdown (online) editor
+ Issue tracking
+ Trending on Github
+ Oh my zsh : một terminal có hiển thị thư mục và branch hiện tại
+ GUI tools: Source Tree, Git Kraken, Github Desktop
+ Hiểu sâu hơn về Git
+ Học vim hặc nano