-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgit_method.txt
More file actions
57 lines (44 loc) · 2.35 KB
/
git_method.txt
File metadata and controls
57 lines (44 loc) · 2.35 KB
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
查看状态 git status
提交到缓存区: git add 文件名
提交到版本: git commit -m "提交说明"
回退版本: git reset 版本号
查看提交日志: git log
查看命令历史: git reflog
查看修改内容: git diff (如果提交到缓存区,就不能比较文本)
工作区文本撤销: git checkout -- 文件名
缓存区文件撤销: git HEAD -- 文件名
版本库撤销:只能用回退 git reset 版本号
删除文件: git rm 文件名 只要提交到版本库的文件不怕被误删
推到远程仓库: git push origin master
关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
从远程仓库克隆一个仓库 git clone 仓库地址(支持不同协议的有 ssh https)
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
带图分支的查看:git log --graph --pretty=oneline --abbrev-commit
合并时禁用 Fast forward 模式(这种模式会合并的时候会丢失分支信息) 所以在合并的时候可以采用 git merge --no-ff 这样就能在历史分支中看出信息
工作没有完成时,可以临时保存 git stash
恢复有两种方法:git stash list(查看有哪些stash)
1.git stash apply(stash 内容不删除) 如果有多个stash 可以用 git stash apply@{编号} 选择
2.git stash pop (stash 内容删除)
在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
标签:
命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
命令git tag可以查看所有标签。
命令git push origin <tagname>可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d <tagname>可以删除一个本地标签;
命令git push origin :refs/tags/<tagname>可以删除一个远程标签。