likes
comments
collection
share

GIT常用笔记

作者站长头像
站长
· 阅读数 45

学习链接

安装Git

在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。

SSH Key

ssh-keygen -t rsa -C "youremail@example.com" # 创建SSH Key,记得换成自己的邮箱地址

说明: 在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可放弃上一步直接跳到下一步。如果没有,打开Shell,创建SSH Key

把SSH Key的公钥添加到远程仓库服务器

事例流程: 登陆GitHub,打开“Account settings”,“SSH Keys”页面: 然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容: 点“Add Key”,你就应该看到已经添加的Key

配置Git信息

git config --global user.name "Your Name"   # 用户名
git config --global user.email "youremail@example.com" # 邮箱 (换成自己的邮箱地址)

创建版本库

git init        # 把当前目录变成Git可以管理的仓库,用ls -ah命令可以看到一个.git目录,说明仓库创建成功。

把修改添加到Git仓库

git add readme.txt # 把指定文件的修改添加到暂存区
git add .          # 把所有修改添加到暂存区
git commit -m "此次提交的说明" # 把暂存区中存储的修改提交到当前分支

查看仓库的状态

git status # 查看工作区的状态
git diff # 查看具体修改了什么内容

查看提交的历史记录

git log                  # 查看完整记录信息
git log --pretty=oneline # 查看简要记录信息
git log --abbrev-commit  # 记录信息中id简写
git log --graph          # 查看分支的合并情况
git log --graph --pretty=oneline --abbrev-commit # 查看分支的合并情况并只显示简要信息

版本回退

git reset --hard HEAD^         # 回退到上一个commit提交的版本,HEAD^^上两个,HEAD^^^上三个,......
git reset --hard 1094a8c...... # 根据commit提交时生成的版本id回退到指定版本,id号比较长,通常输入前七位就可以自动匹配到

注意: 执行回退后,再执行git log查看,会发现最近一次提交的那个版本id已经看不到了,想再回到最近的一次提交已经回不去了,肿么办? 只要上面的命令行窗口还没有被关掉,你就可以顺着往上找,找到对应的版本id,再根据版本id回退。 如果命令行窗口关了怎么办? 每一次提交都对应一个版本id,问题就在于我们能不能找到那个版本的id,找到id后根据id回退就行。 那么关了后如何在找到id呢,上面说再执行git log已经看不到最新的那个id了啊 o(╥﹏╥)o 。 通过git reflog命令可以查看执行过的git命令记录,记录中会有版本id ^_^ 。

撤销修改

git checkout -- readme.txt # 把工作区中的修改撤销掉

解读: 命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况: 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 总之,就是让这个文件回到最近一次git commitgit add时的状态。

git reset HEAD readme.txt # 把暂存区的修改撤销掉,重新放回工作区

本地仓库与远程仓库

git remote add origin https://gitee.com/friendlysxw/learn-git.git    # 本地仓库关联远程仓库
git remote -v                                                        # 查看远程仓库更详细的信息
git clone https://gitee.com/friendlysxw/learn-git.git  # 直接在本地克隆远程仓库
git push origin <branchName> # 把指定分支推送到远程仓库
git push -u origin master    # 第一次推送,-u参数 会把本地master分支和远程master分支关联,往后可以简写
git push                     # 把master分支推送到远程的简写方式

分支管理

git branch                 # 查看分支
git branch <branchName>    # 创建分支
git branch -d <branchName> # 删除分支
git branch -D <branchName> # 强行删除分支
git branch --set-upstream-to=origin/<branchName> <branchName> # 创建本地分支<branchName>与远程分支origin/<branchName>的链接关系
git checkout <branchName>  # 切换分支
git switch <branchName>    # 切换分支 推荐使用
git checkout -b <branchName> origin/<branchName> # 创建远程分支到本地
git checkout -b <branchName> # 创建加切换分支
git switch -c <branchName>   # 创建加切换分支 推荐使用
git merge <branchName>     # 合并指定分支到当前分支 ,如果是快进方式提交,分支删了在记录中会丢失分支信息
git merge <branchName> --no-ff -m "禁止快进方式的合并" # 禁止快进方式合并,本次合并会有一次commit,所以加 -m 进行注释

工作现场(工作区当前未提交的变化)

git stash                   # 将当前工作现场存储起来
git stash list              # 查看存储过的工作现场记录
git stash apply 0           # 根据记录索引恢复指定的工作现场
git stash drop 0            # 根据记录索引删除指定工作现场记录
git stash pop               # 恢复上一次存储的工作现场,并从存储记录中删除上一次的记录

复制指定提交到当前分支

git cherry-pick <commitId>

标签管理

git tag <tagName>                       # 在最新一次提交上创建一个标签
git tag -a <tagName> -m "describe info" # 创建带有说明的标签
git tag <tagName> <commitId>            # 在指定提交上创建一个标签
git tag                                 # 查看所有标签名
git show <tagName>                      # 查看指定标签具体信息
git push origin <tagName>               # 把指定标签推送到远程仓库
git push origin --tags                  # 把所有标签推送到远程仓库

查看执行过的git命令记录

git reflog

魔法

  • 删除当前分支外的所有分支:

    git branch | xargs git branch -d

  • 删除分支名包含指定'dev'的分支:

    git branch | grep 'dev*' | xargs git branch -d

  • 删除除了main之外的其它分支

    git branch | grep -v 'main' | xargs git branch -D

转载自:https://juejin.cn/post/6982851048939454472
评论
请登录