git reflog
git reset
git branch
git checkout
git merge
git clone <git项目地址>
git remote add <别名> <地址>
git push <仓库别名> <分支名>
git pull <仓库别名> <分支名>
git branch --set-upstream-to=<远程仓库名称>/master master
git config --global user.name "wuxiangjun"
git config --global user.email "[email protected]"
#查看是否配置成功
git config --list
默认在用户目录下的.ssh目录里
ssh-keygen -t rsa -C "你的邮箱地址"
[!TIP]
之后使用时如果需要上传或者修改远端仓库,则需要将公钥配置到远端仓库服务器上,而私钥由自己保留在客户端本机,以便于Git使用时完成校验。
[!NOTE]
基本概念:
- 工作区: 自己硬盘上实实在在的文件位置,通过add到暂存区;
- 暂存区: 在真正确认提交之前,需要将文件保存到暂存区,之后确认了再commit到本地仓库;
- 本地仓库: 是git init之后产生的.git文件夹。
git init
:在当前目录生成一个本地仓库,并且默认创建一个 master 分支git status
:查看当前 git 仓库中文件的状态git add .
:将当前目录下所有未追踪的文件添加到暂存区git commit -m "提交说明"
:将暂存区文件提交到本地仓库git commit -am
:暂存+提交git log
:可以查看提交的记录,但是只能查看当前版本之前的日志git reflog
:可以查看所有提交的记录,包括当前版本之后的。【HEAD标记,表示当前所在的版本】git reset --hard HEAD^/记录编号
:将文件回到某个版本下的状态【HEAD^表示前一个版本】git branch <新分支名> <提交哈希>
:加分支名表示创建分支, 不加表示显示当前所有分支git switch/checkout(旧) <分支名>
:切换分支git merge <分支名>
:合并分支,要改哪个分支,就先切过来,然后merge别的分支[!IMPORTANT]
基本概念:
- 平常在公司里,一般会用gitlab搭建一个公司内部的git服务器用于存放源码;
- 需要和管理员沟通,获取账号权限,可能需要提供公钥,也可能是分配一个账号;
- gitee和github:则是一个开源代码托管平台,相当于一个远程仓库。
ssh -T [email protected]
nslookup github.com
[!WARNING]
记事一则:
- 使用
ssh -T [email protected]
正常验证通过,但是无法正常git clone
;- 提示
ssh: Could not resolve hostname github.com: Non-recoverable failure in name resolution
;- 折腾一天无果,powershell 正常解析 DNS,但是 git bash 始终无法正常使用,故添加
nslookup github.com
命令测试;- 临时解决方案:使用 powershell 进行 git 命令操作。
git remote add <仓库别名> git 项目地址
:添加一个远程仓库,并且给他取个名字[!TIP]
添加别名前可查看项目中已配置的远程仓库及其对应的 URL,如果发现名称已配置,可以根据需要修改或删除
git remote -v
:查看当前关联的仓库git remote rename origin new-origin
:修改远程仓库别名git remote set-url origin <new_path>
:重置仓库地址git remote remove origin
:删仓库
git clone git项目地址
git pull 仓库别名 分支名
:pull
实际上是 fetch
和 merge
的组合git push 仓库别名 分支名
:上传本地仓库的某某分支到关联的远程仓库git push -u origin main:main
:推送本地的main
分支到远程仓库 origin
,并且将本地的 main
分支设置为跟踪远程的 main
分支(即上游分支)git branch --set-upstream-to=<仓库别名>/master master
:同上,将默认的 push pull
的远程仓库 <仓库别名>/master
绑定到本地 master
,之后 可以省略输入仓库名和分支名。