说明:以下情景基于在本地新建一个test目录,目录中有一个hello.txt文件
一、本地仓库
常用指令:
- git init 将test目录变成GIT可以管理的仓库
- git add . 将test目录下所有文件添加到仓库
- git add hello.txt 将hello文件添加到仓库
- git commit -m "" 将文件提交到仓库并在""中说明
- git status 查看仓库当前状态
- git diff 当修改了test目录中hello文件之后,使用该命令查看不同
- git diff HEAD --hello.txt 查看工作区与版本库里面最新版本的区别
- git log 查看提交历史
- git log --pretty=oneline 简化版查看提交历史
- git log --oneline 查看当前版本
- git reset --hard "HEAD^" 回退到上个版本,表示上一个版本,^表示上两个版本
- git reset --hard b1fdb3ff 回退到某个版本,b1fdb3ff代表的是某一个版本的版本号
- git reflog 记录了你的每一条有效命令记录,可根据每条记录前的版本号,回到该版本号
- git restore hello.txt 将工作区里面的内容清空
- git reset HEAD hello.txt 将暂存区回退到工作区
- git checkout -- hello.txt 恢复文件,注意--两边都要空格
常见场景:
1、初始化一个目录,并将该目录提交到仓库
- git init
- git add .
- git commit -m ""
2、修改一个目录中文件后,重新提交到仓库需要执行的命令
- git status 先查看仓库状态
- git diff 查看不同
- git add . 提交
- git commit -m "" 提交
3、如果需要将版本回退到历史某个版本
- git status 首先查看仓库状态
- git log --pretty=oneline 查看历史版本
- git reset --hard "HEAD^" 回到上一个版本,上上个版本^^以此类推
4、如果有1、2、3、4(最新)个版本,如果回退到3版本后git log会发现4版本已经不见了,如果需要再回到4版本:
- 在窗口未关闭的情况下,可以根据之前的git log 下历史版本中每个版本下commit 后面的一串版本号(id),取id前几位输入以下命令即可:
- git reset --hard b1fdb3ff (b1fdb3ff 代表的是某一个版本的版本号)
- git reflog 查看每一次有效命令的记录,找到4的版本号b1fdb3f
- git reset --hard b1fdb3f 回到4版本
5、当我们在修改了文件之后觉得文件修改得很乱想回退到最开始的版本,如果还没有将工作区里面的文件git add 提交到暂存区,那么可以用以下操作:
- git status 查看工作区是否干净
- git restore hello.txt 将工作区里面的内容清空
6、当修改了文件并提交到暂存区之后,后悔了,不想修改可以:
- git reset HEAD hello.txt 将暂存区回退到工作区
- git status 查看工作区是否干净
- gigit restore hello.txt 将工作区里面的内容清空
7、当我们的文件提交了版本库后,将本地的某些文件删除了的时候:
- git checkout -- hello.txt 恢复文件,注意--两边都要空格
- git rm hello.txt 删除版本库中的hello.txt文件
- git commit -m ‘‘ 再次提交
二、远程仓库
常用指令
- ssh-keygen -t rsa 本地生成SSH
- git remote add origin git@github.com:Ccx22/firstdemo.git 将本地仓库与远程仓库建立连接
- git push -u origin master 第一次推送到远程master分支
- git push 推送本地仓库代码到远程仓库
- git pull 下拉远程仓库代码到本地仓库
- git push origin master 将本地master分支的最新修改推送至GitHub(远程仓库)
- git clone git@github.com:Ccx22/firstdemo.git 克隆远程仓库
- git remote -v 查看远程库信息
- git remote rm origin 解除本地仓库与远程仓库的建立的连接
常见场景
一、本地仓库与github仓库建立连接
- 本地用户主目录下看看有没有.ssh目录,如果有再看看有没有id_rsa(私钥)和id_rsa.pub(公钥)这两个文件,有的话打开id_rsa.pub并复制里面的密钥,没有的话将用户主目录用git bash 打开,创建SSH Key:
-
在github中setting里找到SSH and GPG keys 然后将刚才复制的密钥放入里面。如果后续你在另一台新设备上也想推送该项目,也可以使用同样的方式将新设备的ssh公共密钥放进github。
-
在github创建一个仓库,并复制ssh,然后在本地仓库执行下面的命令即可建立连接。注意:origin后面跟的是github上复制的ssh。
- git remote add origin git@github.com:Ccx22/firstdemo.git
二、将本地仓库的所有内容推送到远程仓库
- git push -u origin master 第一次推送到master分支时,加上-u参数,git会把本地master分支内容推送到远程新的master分支,还会将本地的master分支和远程的master分支关联起俩,以后可以简化命令直接git push
三、解除本地仓库与远程仓库之间建立的连接
- git remote -v 先查看一下远程库信息
- git remote rm origin 解除本地仓库与远程仓库的连接
三、分支管理
常用指令
- git checkout -b dev 创建dev分支,并切换到dev分支(旧版)
- git switch -c dev 创建dev分支,并切换到dev分支(新版)
- git branch dev 创建dev分支
- git branch -d dev 删除dev分支
- git checkout dev 切换到dev分支(旧版)
- git switch dev 切换到dev分支(新版)
- git merge dev 当前HEAD指向的是master分支,需要将dev分支合并到master分支上
- git push --set-upstream origin dev 远程仓库建立dev分支
- git log --graph 查看分支合并图
- git rebase 可以把本地未push的分叉提交历史整理成直线;rebase的目的是使我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比
常见场景
1. 创建一个dev分支,并切换到dev分支
2. 在dev分支上完成了工作后,将dev分支合并到master分支
- git switch master 首先切换到master分支
- git merge dev 将dev分支合并到master分支上
- git branch -d dev 将dev分支删除(可删可不删)
3. 克隆一个远程仓库项目后
- git clone git@github.com:Ccx22/firstdemo.git 克隆仓库
- git remote -v 查看远程仓库情况
- git push origin dev 推送dev分支到远程仓库,也可以推送master分支
GIT:使用技巧
原文:https://www.cnblogs.com/cx197/p/14852641.html