信息配置
git config --list
git config --local --list
git config --system --list
git config --global --list
q
git config user.name
git config --global user.name "hu1hu"
git config --global --unset user.name
|
注意事项:
- 以linux系统为例,系统信息全部用户通用,用户信息用户内通用(如root用户),仓库信息作用于一个仓库内。
- 若出现多条相同的配置信息,采用最后一条,采用范围最小的一条。
- git配置是键值对的形式,同一级别同一个配置信息会覆盖原有的信息。
- 查看信息时,如果没有指定级别,则从local->global->system 向上找直到找到或没有
- 删除信息时,如果没有指定级别,则从local->global->system 向上找直到找到或没有,删除一条后即结束
必要的配置
git config --global user.name "hu1hu" git config --global user.email "3261801992@qq.com"
git config --global core.ignore false
|
- 用户名和邮箱记得配置成自己的,由于git会将每个提交(commit)与一个特定的作者关联起来,每次提交都会携带这些个人信息。
个人喜好配置
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
|
代理配置
git config --global http.proxy http://127.0.0.1:7890
git config --global http.proxy https://127.0.0.1:7890
git config --global http.proxy sockets5://127.0.0.1:7890
git config --global http.https://github.com.proxy http://127.0.0.1:7890
git config --global http.https://github.com.proxy sockets5://127.0.0.1:7890 git config --global http.https://gitlab.com.proxy sockets5://127.0.0.1:7890
|
私有仓库克隆
当我们需要克隆私有仓库时就需要执行登录操作,为了避免每次都需要输入用户(用户是邮箱)密码,我们可以进行相应的配置。
SSH秘钥
将电脑中的公钥配置到github或gitee所需平台中
使用凭据帮助器
第一次需要输入账号密码,以后会记住,默认开启使用系统自带的凭证管理器。虽然有进行加密,但是可能造成密码泄露。
git config --global credential.helper store
|
Git - 凭证存储 (git-scm.com)
使用Personal Access Token(访问令牌)
等等
仓库初始化
初始化本地仓库
- 该命令会创建一个名为.git的子目录,这个子目录中包含初始化Git仓库的所用必须的文件。但是这时项目中的文件还没有被跟踪,仅仅做了初始化操作。
克隆已有仓库
git clone <url> [仓库本地要使用名字]
|
基础操作
命令 |
功能 |
workspace |
|
staging |
|
local repository |
|
remote repository |
git add |
将工作区的文件放入暂存区,如果文件没有跟踪则跟踪 |
|
→ |
|
|
|
|
|
git commit -m “注释” |
将暂存区的文件夹提交到本地仓库 |
|
|
|
→ |
↓版本更新 |
|
|
git commit -am “注释” |
将暂存区的文件追加到本地仓库 |
|
→ |
|
→ |
|
|
|
git reset –soft <> |
本地仓库分支回退 |
|
|
|
|
↑版本回退 |
|
|
git reset –mixed <> |
本地仓库分支回退,并恢复到暂存区(默认) |
|
|
|
← |
↑版本回退 |
|
|
git reset –hard <> |
本地仓库分支回退,并恢复到暂存区与工作区 |
|
← |
|
← |
↑版本回退 |
|
|
git restore |
将暂存区的文件恢复到工作区 |
|
← |
|
|
|
|
|
git restore –staged |
将HEAD指向版本恢复到暂存区 |
|
|
|
← |
|
|
|
git rm |
删除工作区、暂存区的文件 |
delete |
|
delete |
|
|
|
|
git rm –cached |
删除暂存区的文件 |
|
|
delete |
|
|
|
|
git fetch <远程主机名> <远程分支>:<本地分支> |
将远程仓库拉取到本地仓库 |
|
|
|
|
|
← |
|
git pull <远程主机名> <远程分支>:<本地分支> |
|
|
← |
|
← |
|
← |
|
git push <远程主机名> <远程分支>:<本地分支> |
|
|
|
|
|
|
→ |
|
- git restore –staged :默认从HEAD恢复,也可使用参数–source= 指定版本。
- git commit –amend -m “···”: 追加提交
- git revert <回退点>
<远程分支>:<本地分支>
:远程分支和本地分支同名可以省略
git pull
就是 git fetch
和 git merge
的缩写!
查看文件状态
文件状态:
- Untracked:未跟踪,没有交给git仓库管理
- Unmodified:已跟踪,未修改(工作区与暂存区一致,与本地仓库一致)
- Modified:已跟踪,已修改(工作区与暂存区不一致)
- Staged:已跟踪,已缓存(工作区与暂存区一致,与本地仓库不一致)
查看历史提交记录
命令行
图形化git自带
gitk
git config --global gui.encoding utf-8
|
修改最后一次的提交
git commit --amend
git commit --amend -m "test":
|
git 远程仓库操作
查看远程仓库
添加远程仓库
git remote add <shortname> <url>
|
删除远程仓库
git remote remove <shortname>
|
重命名远程仓库
git remote rename <old> <new>
|
修改指定远程仓库的URL
git remote set-url <remote_name> <new_url>
|
其它
自动补全
按两下tab
键,当你只记住一部分操作的时候,这个操作有神奇的作用。
分支管理
查看分支
git branch
git branch -vv
git branch -u [repository-name/branch-name]
git branch --unset-upstream [branch-name]
|
新建本地分支
git branch <新分支名>
git checkout -b <新分支名>
|
删除本地分支
切换分支
git checkout <分支名>
git switch <分支名>
|
分支合并
git merge <分支名>
git rebase <branch>
|
强制移动分支
git branch -f <branch—name> <新位置>
|
暂存工作区与暂存区
git stash list
git stash
git stash save "信息"
git stash pop
git stash apply <stash_id>
git stash drop <stash_id>
git stash clear
|
高级操作
git cherry-pick <记录号> <记录号> ....
git rebase -i <记录号>
|
打标签
Git 工作流
一文读懂Git工作流 - 知乎 (zhihu.com)
参考
Git - Book (git-scm.com)
学习 Git 分支 — Learn Git Branching
关于版本控制 · Pro Git 第二版 简体中文 (gitbooks.io)
Git中的push和pull的默认行为 - 掘金 (juejin.cn)