本文最后更新于 2024年9月1日 下午
Git 基础
前言
Git 是一款版本管理软件, 适用目前绝大多数操作系统; Github 是一个代码托管平台, 与 Git 没有任何关系. 只不过 Git 可以基于 Github 进行分布式云存储与交互, 因此往往需要结合二者从而达到相对良好的 Teamwork 状态. 本文是我基于 Git 的版本管理学习记录, 涉及到的指令只是冰山一角, 但是使用频率较高. 详细的指令请跳转至官方教学: https://git-scm.com/book/zh/v2
全文分为两个部分, 分别为 Git 版本管理的架构 Architecture 与 Git 的命令 command. 其中 Architecture 使用 Xmind 绘制, command 采用 Git Bash 模拟 Unix 命令行终端. 本地 OS 为 Microsoft Windows 11.
Architecture
Command
零、查看
0.1 查看状态
0.2 查看日志
0.3 查看差异
1 2 3 4 5
| git diff <FileName>
git diff
|
1 2 3 4 5
| git diff --cached <FileName>
git diff --cached
|
一、配置
1.1 初始化
1.2 查看配置
1 2 3 4
| git config user.name git config user.password git config user.email
|
1 2 3
| git config --global --get http.proxy git config --global --get https.proxy
|
1.3 编辑配置
邮箱、密码、用户名
1 2 3 4 5 6 7 8 9
| git config user.name "xxx" git config user.password "xxx" git config user.email "xxx@xxx.com"
git config --global user.name xxx git config --global user.password xxx git config --global user.email "xxx@xxx.com"
|
VPN
1 2 3 4 5 6 7
| git config --global http.proxy 127.0.0.1:<VpnPort> git config --global https.proxy 127.0.0.1:<VpnPort>
git config --global --unset http.proxy git config --global --unset https.proxy
|
远程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| git remote add <RemoteName> https://github.com/用户名/仓库名.git
git remote -v
git remote rename <OldRemoteName> <NewRemoteName>
git remote set-url <RemoteName> <NewURL>
git remote set-url --add github https://gitee.com/idwj/idwj.git
git remote rm <RemoteName>
|
二、迭代
2.1 工作区到暂存区
1 2 3 4 5
| git add <FileName>
git add .
|
2.2 暂存区到仓库区
1 2
| git commit -m '<Comment>'
|
2.3 仓库区到服务器
1 2 3 4 5 6 7 8
| git push <RemoteName> <BranchName>
git push -u <RemoteName> <BranchName>
git push
|
1 2
| git push --force <RemoteName> <BranchName>
|
2.4 服务器到本地
一键克隆整个项目
1 2
| git clone https://github.com/<UserName>/<ProjectName>.git <ProjectName>
|
远程更新, 本地未更新(方法一)
1 2 3 4 5
| git fetch <RemoteName> <BranchName>
git merge <BranchName>
|
远程更新, 本地未更新(方法二)
远程更新, 本地也更新
三、回溯
3.1 工作区到未管理或上一个版本
1 2
| git checkout -- <FileName>
|
3.2 暂存区到工作区状态
1 2 3 4 5
| git reset <FileName>
git reset .
|
3.3 仓库区到暂存区状态
1 2 3 4 5 6 7
| git reset '<commit_id>' git reset --soft '<commit_id>' git reset --hard '<commit_id>'
git commit --amend
|
3.4 取消服务器的修改
取消当前版本某文件(夹)的版本管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| git rm --cached <FileName> git commit -m 'remove xxx file' git push 在 .gitignore 中增加上述 <FileName>
git rm <FileName> git commit -m 'delete xxx file(folder)' git push
git rm -r --cached <Folder> git commit -m 'remove xxx floder' git push
|
取消所有版本某文件的版本管理
1 2 3 4
| git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <FilePath>' --prune-empty --tag-name-filter cat -- --all
https://blog.csdn.net/q258523454/article/details/83899911
|
希望某些文件加入版本管理
四、分支
4.1 创建分支
1 2 3 4 5
| git branch <BranchName>
git push <RemoteName> <BranchName>
|
4.2 删除分支
1 2 3 4 5 6
| git switch <AnotherBranchName> git branch -d <BranchName>
git push <RemoteName> --delete <BranchName>
|
4.3 修改分支
如果修改的分支为远程保护分支, 则在远程更新之前, 需要在远程相应的服务商家那里对保护分支进行重新设定
1 2 3 4 5 6
| git branch -m <OldName> <NewName>
git push <RemoteName> <NewName> git push <RemoteName> --delete <OldName>
|
4.4 合并分支
4.5 拉取分支
1 2
| git checkout -t <RemoteName>/<BranchName>
|