-
Notifications
You must be signed in to change notification settings - Fork 0
/
GitNote.txt
65 lines (56 loc) · 4.13 KB
/
GitNote.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
-------------------------------创建------------------------------
- 添加本地文件: git add <filename>, 修改完文件以后也要做这一步
- 提交修改: git commit -m "这里写一段简单的陈述关于修改的部分"
- 同步到远程: git push origin master
- 如果出错, 是因为远端的比本地的新, 要先git pull, 在git push
- IMPORTANT: 每次修改完文件要git add 文件名
- 提交之前, 最好先 git diff 查看下修改的内容, 确保无误之后再git add
-------------------------------分支-------------------------------
- 查看分支: git branch
- 创建分支: git branch xxx
- 切换分支: git checkout xxx
- 创建+切换分支: git checkout -b xxx
- 合并某分支到当前分支: git merge xxx
- 这个注意, 比如我们要把dev合并到master, 就要先进入master分支, 然后执行上面的命令. 而不是在dev分支执行 git merge master, 那是很愚蠢的.
- 删除分支: git branch -d xxx
-------------------------------远程repo-------------------------------
- 先github上面建立一个repo, 然后, git clone xxx 到本地
- 接着可以把本地要添加的文件放到这个文件夹里面, 然后 git add . 意思是添加文件夹里面的全部文件
- 然后git commit -m "xxx" 确认添加.
- 最后git push origin master就好了.
- 注意, git clone的时候, 最好用ssh的地址, https的话, 每次push都要输密码, 很烦.
-------------------------------分支策略-------------------------------
- 在实际开发中, master这个分支是很稳定的, 也就是仅用来发布新版本 ,而不是用来在上面干活的.
- 要干活, 自己建dev分支去
- 每个人都在dev这个分支上工作, 然后在这个分支下有自己的分支, 然后时不时的往dev上面合并, 最后dev才会往master上面合并
- 合并分支时: git merge --no-ff -m "xxx" dev, 这样的好处是 合并后的历史有分支, 看得出来曾经做过合并.
- 丢弃一个没有被合并过得分支: git branch -D xxx
-------------------------------Bug临时出现-------------------------------
- 遇到这种情况: 正在dev分支上工作, 工作区还有没有提交的工程, 但是不能提交, 因为没完成, 但是有一个紧急的bug在别的分支上.
- 这时候, 先把工作现场git stash 一下, 然后去修复bug, 修复完毕, 再git stash pop, 回到工作现场.
- 这个和screen有点像.
-------------------------------分支push问题-------------------------------
- master 分支是主分支, 因此需要实时同步
- dev 分支是开发分支, 团队成员都在上面工作, 因此也需要和远程
- 其他的分支, 比如bug分支, 就不用时时push到远端了, 除非老板要监视你~~~
-------------------------------多人协作-------------------------------
1. 首先, 可以试图用git push origin xxx 推送自己的修改
2. 如果推送失败, 那是因为远程分支比本地的新, 需要先用git pull 试图合并
3. 如果合并有冲突, 则解决冲突, 并在本地提交
4. 没有冲突或者解决冲突之后, 再用git push origin xxx 推送就能成功推送
5. 如果git pull 提示"no tracking information", 则说明本地分支和远程分支的链接关系没有创建, 用 git branch --set-upstream xxx origin/xxx
6. 查看远程库信息, git remote -v
7. 在本地创建和远程分支对应的分支, 应使用git checkout -b xxx origin/xxx
-------------------------------标签tag-------------------------------
1. 进到需要打标签的分支上
2. git tag xxx 打了一个新标签, 默认是给HEAD打的
3. git tag 查看所有标签
4. git tag xxx commitId 可以给不是HEAD的打标签.
5. git tag -a xxx -m "xxxxxxxxx" 可以指定标签信息.
6. 推送一个本地标签去远程 git push origin xxx
7. 推送全部未推送的本地标签 git push origin --tags
8. 删除本地标签 git tag -d xxx
9. 删除远程标签 git push origin :refs/tags/v0.9
-------------------------------gitignore-------------------------------
- 有些时候, 不得不把一些文件放入Git工作目录中, 但是又不能提交它们
- 可以创建一个.gitignore文件, 把要忽略的文件名填进去, Git会自动忽略这些文件.