|
1 | 1 |
|
2 |
| -修改设置 |
3 |
| -$ git config --global user.name "Your Name" |
4 |
| -$ git config --global user.email " [email protected]" |
| 2 | +# 设置 |
5 | 3 |
|
6 |
| -创建空目录 |
7 |
| -$ mkdir learngit |
8 |
| -$ cd learngit |
9 |
| -$ pwd |
| 4 | +## 信息修改 |
10 | 5 |
|
11 |
| -git init |
12 |
| -初始化一个Git仓库,将目录变成Git可以管理的仓库。其目录下会多了个.git的目录(默认为隐藏的,ls -ah命令可以显示) |
| 6 | +git config --global user.name "Your Name" |
| 7 | +git config --global user.email "[email protected]" |
13 | 8 |
|
14 |
| -git add <file> |
| 9 | +## 生成密匙 |
| 10 | + |
| 11 | +ssh-keygen -t rsa -C " [email protected]" |
| 12 | +一直回车,在用户主目录会生成.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。 |
| 13 | + |
| 14 | +# 关联 |
| 15 | + |
| 16 | +## 关联远程库 |
| 17 | + |
| 18 | +git remote add origin [email protected]:github-name/repo-name.git |
| 19 | + |
| 20 | +## 克隆远程仓库到本地(自动关联) |
| 21 | + |
| 22 | +git clone [email protected]:path/github-name.git |
| 23 | + |
| 24 | +## 查看远程仓库的信息 |
| 25 | + |
| 26 | +git remote |
| 27 | +git remote -v (查看远程库更详细的信息,如果没有推送权限,就看不到push的地址) |
| 28 | + |
| 29 | +## 关联本地仓库分支与远程仓库分支 |
| 30 | +git checkout -b branch-name origin/branch-name |
| 31 | +在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致 |
| 32 | + |
| 33 | +git branch --set-upstream branch-name origin/branch-name |
| 34 | +建立本地分支和远程分支的关联 |
| 35 | + |
| 36 | +# 文件操作 |
| 37 | + |
| 38 | +## 初始化仓库 |
| 39 | + |
| 40 | +git init |
| 41 | + |
| 42 | +## 添加文件到暂存夹 |
| 43 | + |
| 44 | +git add <'file'> |
15 | 45 | 添加文件到仓库(类似于加入暂存夹)
|
| 46 | +git add . |
| 47 | +添加全部文件到暂存夹 |
| 48 | + |
| 49 | +## 提交到本地仓库,并注释 |
16 | 50 |
|
17 | 51 | git commit -m "注释"
|
18 | 52 | 将文件提交到仓库,"注释"就是做标记,方便查找
|
19 | 53 |
|
| 54 | +## 删除文件 |
| 55 | +git rm <'file'> |
| 56 | + |
| 57 | +## 查看当前的状态 |
| 58 | + |
20 | 59 | git status
|
21 | 60 | 查看当前仓库的状态,哪些文件做了修改。
|
22 | 61 |
|
23 |
| -git diff <file> |
24 |
| -如果git status告诉你有文件被修改过,git diff查看修改内容。 |
| 62 | +## 查看修改内容 |
| 63 | + |
| 64 | +git diff <'file'> |
| 65 | +如果git status告诉你有文件被修改过,git diff查看修改内容。 |
| 66 | + |
| 67 | +## 查看工作区和版本库里面最新版本的区别 |
25 | 68 |
|
26 |
| -git log |
27 |
| -查看提交历史。 |
| 69 | +git diff HEAD -- <'file'> |
| 70 | + |
| 71 | +## 查看提交记录 |
| 72 | + |
| 73 | +git log |
| 74 | +git log --pretty==oneline (精简输出的信息) |
| 75 | + |
| 76 | +## 查看命令历史 |
28 | 77 |
|
29 | 78 | git reflog
|
30 |
| -查看命令历史 |
31 | 79 |
|
32 |
| -git log --pretty==oneline |
33 |
| -精简输出的信息 |
| 80 | +# 版本回退 |
| 81 | + |
| 82 | +## 回退到上一个版本 |
34 | 83 |
|
35 | 84 | git reset --hard HEAD^
|
36 |
| -回退到上一个版本。 |
37 | 85 |
|
38 |
| -git reset --hard <commit_id> |
39 |
| -回退到指定id的版本 |
| 86 | +## 回退到指定id的版本 |
40 | 87 |
|
41 |
| -git diff HEAD -- <file> |
42 |
| -查看工作区和版本库里面最新版本的区别 |
| 88 | +git reset --hard <'commit_id'> |
| 89 | + |
| 90 | +## 撤销工作区的修改 |
43 | 91 |
|
44 |
| -git checkout -- <file> |
45 |
| -把<file>文件在工作区的修改全部撤销。 |
46 |
| -1.如果<file>工作区做了修改,直接运行git checkout -- <file>撤销 |
47 |
| -2.如果<file>工作区做了修改并添加到了暂存区,先运行git reset HEAD <file>,再运行git checkout -- <file>撤销 |
| 92 | +git checkout -- <'file'> |
| 93 | +把<'file'>文件在工作区的修改全部撤销。 |
| 94 | +1.如果<'file'>工作区做了修改,直接运行git checkout -- <'file'>撤销 |
| 95 | +2.如果<'file'>工作区做了修改并添加到了暂存区,先运行git reset HEAD <'file'>,再运行git checkout -- <'file'>撤销 |
48 | 96 |
|
49 |
| -git rm <file> |
50 |
| -删除一个文件 |
| 97 | +## 修改commit注释 |
51 | 98 |
|
52 |
| -ssh-keygen -t rsa -C " [email protected]" |
53 |
| -一直回车,在用户主目录会生成.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。 |
| 99 | +git commit --amend |
| 100 | +按i进入编辑模式 |
| 101 | +esc退出编辑 |
| 102 | +:wq保存并退出 |
54 | 103 |
|
55 |
| -git remote add origin [email protected]:github-name/repo-name.git |
56 |
| -关联远程库 |
| 104 | +# 分支操作 |
57 | 105 |
|
58 |
| -git push -u origin master |
59 |
| -第一次推送master分支的所有内容。 |
60 |
| -我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。 |
| 106 | +## 查看分支 |
61 | 107 |
|
62 |
| -git push origin master |
63 |
| -推送最新修改 |
| 108 | +git branch |
64 | 109 |
|
65 |
| -git clone [email protected]:path/github-name.git |
66 |
| -克隆一个本地库 |
| 110 | +## 创建分支 |
67 | 111 |
|
68 |
| -git branch |
69 |
| -查看分支 |
| 112 | +git branch <'name> |
| 113 | + |
| 114 | +## 切换分支 |
| 115 | + |
| 116 | +git checkout <'name> |
70 | 117 |
|
71 |
| -git branch <name> |
72 |
| -创建分支 |
| 118 | +## 创建+切换分支 |
73 | 119 |
|
74 |
| -git checkout <name> |
75 |
| -切换分支 |
| 120 | +git checkout -b <'name> |
| 121 | + |
| 122 | +## 合并某分支到当前分支 |
76 | 123 |
|
77 |
| -git checkout -b <name> |
78 |
| -创建+切换分支 |
| 124 | +git merge <'name'> |
79 | 125 |
|
80 |
| -git merge <name> |
81 |
| -合并某分支到当前分支 |
| 126 | +git merge --no-ff -m "注释" <'name'> |
| 127 | +因为合并要创建一个新的commit,所以加上-m参数,把commit描述写进去 |
| 128 | +--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并 |
| 129 | + |
| 130 | +## 删除分支 |
82 | 131 |
|
83 |
| -git branch -d <name> |
84 |
| -删除分支 |
| 132 | +git branch -d <'name'> |
85 | 133 |
|
86 |
| -git log --graph |
87 |
| -查看分支合并图 |
| 134 | +## 强行删除分支 |
88 | 135 |
|
89 |
| -git log --graph --pretty=oneline --abbrev-commit |
90 |
| -查看分支合并图(精简) |
| 136 | +git branch -D <'name'> |
| 137 | + |
| 138 | +## 查看分支合并图 |
91 | 139 |
|
92 |
| -git merge --no-ff -m "注释" <name> |
93 |
| -因为合并要创建一个新的commit,所以加上-m参数,把commit描述写进去 |
94 |
| ---no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并 |
| 140 | +git log --graph |
| 141 | +git log --graph --pretty=oneline --abbrev-commit (精简) |
| 142 | + |
| 143 | +## 将当前分支储存起来 |
95 | 144 |
|
96 | 145 | git stash
|
97 |
| -将当前分支的工作现场“储藏”起来。 |
98 | 146 |
|
99 |
| -git stash pop |
100 |
| -恢复当前分支的工作现场,并把stash的内容删除 |
| 147 | +## 恢复当前分支的工作现场 |
101 | 148 |
|
102 |
| -git stash apply |
103 |
| -git stash drop |
104 |
| -恢复当前分支的工作现场 |
105 |
| -把stash的内容删除 |
| 149 | +git stash pop (此命令会删除stash的内容) |
| 150 | +git stash apply (此命令不会删除stash的内容) |
| 151 | +git stash drop |
| 152 | + |
| 153 | +## 查看stash的内容 |
106 | 154 |
|
107 | 155 | git stash list
|
108 |
| -查看stash的内容 |
109 | 156 |
|
110 |
| -git branch -D <name> |
111 |
| -强行删除分支。用于丢弃一个没有被合并过的分支。 |
| 157 | +# 推送and拉取 |
112 | 158 |
|
113 |
| -git remote |
114 |
| -查看远程库的信息 |
| 159 | +## 推送到远程分支 |
115 | 160 |
|
116 |
| -git remote -v |
117 |
| -查看远程库更详细的信息,如果没有推送权限,就看不到push的地址。 |
| 161 | +git push -u origin master |
| 162 | +第一次推送master分支的所有内容。 |
| 163 | +我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。 |
118 | 164 |
|
119 |
| -git push origin <branch-name > |
120 |
| -推送分支,如果推送失败,先用git pull抓取远程的新提交 |
| 165 | +## 推送最新修改 |
121 | 166 |
|
122 |
| -git pull |
123 |
| -抓取远程的新提交 |
| 167 | +git push origin master |
124 | 168 |
|
125 |
| -git checkout -b branch-name origin/branch-name |
126 |
| -在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致 |
| 169 | +## 推送本地分支到远程仓库 |
127 | 170 |
|
128 |
| -git branch --set-upstream branch-name origin/branch-name |
129 |
| -建立本地分支和远程分支的关联 |
| 171 | +git push origin <'branch-name'> |
| 172 | +推送分支,先用 git pull抓取远程的新提交 |
130 | 173 |
|
| 174 | +## 拉取远程仓库到本地 |
131 | 175 |
|
| 176 | +git pull (抓取远程的新提交) |
| 177 | +git pull origin <'branch-name'> |
0 commit comments