
git refloggit resetgit branchgit checkoutgit mergegit clone <git项目地址>git remote add <别名> <地址>git push <仓库别名> <分支名>git pull <仓库别名> <分支名>git branch --set-upstream-to=<远程仓库名称>/master mastergit 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,之后 可以省略输入仓库名和分支名。