git文档
配置代理
CSDN慕白Lee
.gitconfig文件,放etc(全部用户生效)或者~(当前用户生效)
1
2
3
4
5
6
7
|
[http]
proxy = 192.168.171.1:8888
[https]
proxy = 192.168.171.1:8888
|
配置全局.gitignore
ZhuGaochao 博客园
- 新建一个文件(不一定非得叫.gitignore)
- 在用户目录的.gitconfig文件(用户范围生效)或者git安装目录下(所有用户生效)添加:
[core]excludesfile = 新建文件的绝对路径
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
|
.DS_Store
*/.DS_Store
*.class
*.iws
*.iml
*.ipr
.idea
.idea/*
*.bak
target
target/*
.gradle/
.DS_Store
.project
.settings/
*.pyc
*.log
*.stats
*.apk
*.ap_
*.dex
gen/
local.properties
proguard/
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
*.hmap
*.ipa
.metadata/
.metadata/*
*.log
pids
*.pid
*.seed
lib-cov
coverage
.grunt
.lock-wscript
build/Release
node_modules
|
git丢弃历史commit
芒草的梦呓 blog
第一步:创建独立的新分支
1
|
git checkout --orphan latest_branch
|
–orphan 选项:创建一个独立分支并切换到该分支,该分支没有历史提交记录。但是对于打了tag的分支会保留最新tag之前的所有历史提交记录
第二步:将需要的文件进行一次提交
1
2
|
git add -A
git commit -m "commit message"
|
第三步:删除需要清除历史记录的分支,并将当前分支名修改为该分支
1
2
|
git branch -D main
git branch -m main
|
第四步:关联本地分支到远程
1
|
git branch --set-upstream-to=origin/main
|
第五步:将本地更改推送到远程分支
1
|
git push -f origin main
|
推送tag到远程仓库
删除分支
1
2
3
4
5
6
|
# 删除本地分支
git branch -d <branch>
# 删除远程分支
git push origin --delete <branch>
# 删除追踪分支
git branch --delete --remotes <remote>/<branch>
|
查看本地分支
拉取远程仓库有但是本地没有的分支
1
|
git checkout -b branch_name origin/branch_name
|
git pull
命令并不会自动创建新的本地分支来跟踪远程的新分支。如果你想要检出一个远程仓库的新分支,你仍然需要使用上面这个命令
注意,如果你本地git branch xxx
创建分支,然后git checkout xxx
切换分支,然后git branch -u
设置上游分支,最后git pull
的时候由于你本地相当于已经有一个commit了,所以需要你merge或者rebase才能pull,这样会在本地留一个脏节点
git解决代码冲突
- 确定冲突:首先,你需要确定冲突的位置。Git会在你尝试合并冲突的分支时给出提示。你也可以通过运行git status来查看冲突的文件
- 打开冲突文件:然后,打开含有冲突的文件。你将看到Git用«««<, =======, »»»>标记出的冲突区域。这些区域显示的是两个冲突的分支的不同更改
- 解决冲突:现在,你需要决定如何解决这个冲突。你可能会保留一个分支的更改,或者将两个分支的更改合并起来。这需要你根据实际代码和项目需求来判断。你需要手动编辑代码,删除Git插入的«««<, =======, »»»>行,并确保留下的代码是你希望的最终版本
- 提交冲突:解决冲突后,你需要将解决冲突的文件添加到暂存区,然后提交。可以使用以下命令完成
1
2
|
git add file-name
git commit -m "Resolve merge conflict"
|
git push -u origin
自动创建并推送本地分支的远程分支
取消merge
重命名分支
1
|
git branch -m [old-branch-name] new-branch-name
|
省略old-branch-name时表示当前分支
撤销修改
1
2
3
4
5
6
|
# 撤销暂存区文件
git reset .
# 撤销修改文件
git checkout .
# 删除新增工作区文件
git clean -fd
|
- Git reset HEAD <文件名>:将暂存区中文件的更改撤销,即将文件恢复为最近一次提交的状态。这个命令只影响暂存区,工作区中的文件保持不变。
- Git reset –hard :将当前分支的HEAD指针移动到指定的,并将工作区和暂存区都恢复到指定的提交状态。这个命令会完全丢弃当前所有的修改,慎用。
- Git reset –soft :将当前分支的HEAD指针移动到指定的,但保留工作区和暂存区的修改。这个命令可以用于撤销一次提交,但保留之前的修改