-
Notifications
You must be signed in to change notification settings - Fork 5
/
git.txt
192 lines (97 loc) · 4.69 KB
/
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
git init 初始化本地仓库
git add -A . 来一次添加所有改变的文件
git add -A 表示添加所有内容
git add . 表示添加新文件和编辑过的文件不包括删除的文件
git add -u 表示添加编辑或者删除的文件,不包括新添加的文件
git commit -m '版本信息' 提交的版本信息描述
git status 查看状态
git push -u origin master 推送到远程仓库看
git pull 拉取远程仓库代码到本地
git branch -av 查看每个分支的最新提交记录
git branch -vv 查看每个分支属于哪个远程仓库
git reset --hard a3f40baadd5fea57b1b40f23f9a54a644eebd52e 代码回归到某个提交记录
分支操作
查看本地都有哪些分支 git branch -a
新建分支 git branch dev
查看当前分支 git branch
切换分支 git checkout dev
删除本地分支 git branch -d dev
同步删除远程分支 git push origin :dev
修改远程仓库地址
方法1,先删后加:
git remote rm origin 先删除
git remote add origin 仓库地址 链接到到远程git仓库
方法2,修改命令:
git remote set-url origin 仓库地址
远程分支获取最新的版本到本地
执行git pull命令
如果以上命令还是失败尝试以下步骤:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
git fetch origin master
比较本地的master分支和origin/master分支的差别
git log -p master..origin/master
进行合并
git merge origin/master
拉取远程仓库指定分支到本地
首先要与origin master建立连接:
git remote add origin [email protected]:XXXX/nothing2.git
切换到其中某个子分支:
git checkout -b dev origin/dev
可能会报这种错误:
fatal: Cannot update paths and switch to branch 'dev' at the same time.
Did you intend to checkout 'origin/dev' which can not be resolved as commit?
原因是你本地并没有dev这个分支,这时你可以用 git branch -a 命令来查看本地是否具有dev分支
我们需要:git fetch origin dev 命令来把远程分支拉到本地
然后使用:git checkout -b dev origin/dev 在本地创建分支dev并切换到该分支
最后使用:git pull origin dev 就可以把某个分支上的内容都拉取到本地了
工具类
Beyond Compare (http://www.scootersoftware.com/download.php 代码合并
官方Git文档地址 https://git-scm.com/book/zh/v2
如何解决 ``` failed to push some refs to git ```
Answer1
* ```git pull --rebase origin master``` 进行代码合并
* ```git push -u origin master``` 即可完成代码上传
Question2
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/ master
Answer2
指定当前当前工作目录工作分支,跟远程仓库分支之间的联系
git branch --set-upstream master origin/master
Question3
git pull 获取最新代码报以下错误
fatal: refusing to merge unrelated histories
Answer3
git pull之后加上可选参数 --allow-unrelated-histories 强制合并
git pull origin master --allow-unrelated-histories
Question4
使用钩子pre-commit,提交代码提示如下错误:
$ git commit -m '.'
sh: eslint: command not found
pre-commit:
pre-commit: We've failed to pass the specified git pre-commit hooks as the `fix`
pre-commit: hook returned an exit code (1). If you're feeling adventurous you can
pre-commit: skip the git pre-commit hooks by adding the following flags to your commit:
pre-commit:
pre-commit: git commit -n (or --no-verify)
pre-commit:
pre-commit: This is ill-advised since the commit is broken.
pre-commit:
Answer4
打开项目中的.git/hooks文件夹,找到pre-commit.sample文件,将以下代码替换到文件中,或者,npm install pre-commit --save也可以,这个命令会自动执行以下操作。
#!/bin/bash
TSLINT="$(git rev-parse --show-toplevel)/node_modules/.bin/tslint"
for file in $(git diff --cached --name-only | grep -E '\.ts$')
do
git show ":$file" | "$TSLINT" "$file"
if [ $? -ne 0 ]; then
exit 1
fi
done
将pre-commit.sample文件名修改为pre-commit。
.gitignore规则不生效的解决办法
Answer5
把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:
git rm -r --cached . 或者 git rm -r README.md
git add .
git commit -m 'update .gitignore'
如果您在工作中还遇到其它问题,可以在下方评论区进行提问。也可以戳原文链接去慕课网关注作者后私戳他哦~