Git的常用命令浅总结

一. 了解 Git 的背景
在说 Git 的提交与下载之前,我们先了解下版本控制管理系统,可以先看看以下博客的讲解。
Git、GitHub、GitLab三者之间的联系以及区别

Git 系统文件的传递流程图Git 系统文件上传下载流程图

二. Git 的常用命令介绍
Git 常用命令速查

  1. Git 基本分支介绍
    master 分支:一般就是要上线的代码所在的分支,也就是最新最正式的分支,Git 默认会建立master分支。
    develop 分支:一般用于我们开发的分支,基于 master 分支建立的。
    myBranch 分支:自己本地开发的分支,基于 develop 分支建立的。
  2. 与分支有关的常用命令:
    创建分支:git branch branch_name
    删除分支:git branch -d branch_name
    查看本地分支:git branch
    查看远程分支: git branch -r
    查看所有分支: git branch -a
    以上查看分支命令会列出所有分支,当前分支前面会标一个✳号
    切换分支:git checkout branch_name 或者 git switch branch_name
    创建并切换到新创建分支:git checkout -b branch name 或者 git switch -c branch name
    合并某分支到当前分支:git merge branch_name
  3. git 分支的的追踪关系
    在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。
    Git 也允许手动建立追踪关系。
    git branch --set-upstream master origin/next
    上面命令指定本地仓库 master 分支追踪 远程origin/next 分支。
    如果当前分支与远程分支存在追踪关系,就可以省略分支名。
    例如:git pull origin 就是把与本地当前分支同名的远程分支,与本地当前分支合并
  4. 与仓库有关的常用命令
    4.1 新建仓库:
    4.1.1 远程仓库创建:
    也是在某个文件夹下面创建远程 git 仓库,如果远程服务器已安装设置过,可忽略下面两步
    Linux 安装 Git apt-get install git
    设置git用户名密码
    git config --global --globsl user.name ‘your name’
    git config --global --globsl user.email ‘your email’
    开始创建仓库
    mkdir project.git
    cd project.git
    git --bare init
    4.1.2 本地仓库创建:
    先在本地创建一个文件夹,然后 git init 就把这个文件夹初始化为 Git 的仓库,Git 网站也可以直接创建
    touch test.txt //touch filename 创建新的空文件
    git add .
    git commit -m ‘frist commit’
    git remote add origin test@1806.cksoft.win:/home/test/project.git
    git push origin master
    4.2 Git 的三种远程仓库切换方式:
    参考以下博客:git 切换远程仓库的地址
    4.2.1 直接修改远程仓库地址:
git remote set-url origin url

4.2.2 删除本地远程仓库地址,然后添加新的仓库地址:

git remote rm origin
git remote add origin url

4.2.3 每个仓库在初始化时,都会有一个 .git 的隐藏目录,修改其中的 config 文件中的 url
111
通过上边修改配置文件,我们知道可以从配置文件中查看远程仓库的地址,同时我们也可以用下边的命令来查看

  1. 提交代码和推送代码
    5.1 添加修改代码到 git 本地仓库暂存区: git add filepath+filename
    强制添加工作区文件到缓存区:git add -f filepath+filename
    添加所有代码到git 本地仓库暂存区: git add .
    或者 git . 添加全部项目到本地暂存区
    暂存区提交代码到本地仓库: git commit -m "提交注释“
    注释一般要有意义,便于以后历史回溯 ,我遇到过的 bug-fix-project_name-bug_id or feature-project_name-feature_id.
    5.2 git push 命令详解
    git push <远程主机名> <本地分支名>:<远程分支名>
    示例:git push origin master
    上面命令表示,将本地的 master 分支推送到 origin 主机的 master 分支。
    如果后者不存在,则会被新建。
    5.3 以下操作慎用,删除远程仓库的分支
    git push origin :master 相当于
    git push origin --delete master
    上面命令表示删除origin主机的master分支。
    5.4 如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。
    git push origin //将当前分支推送到origin主机的对应分支
    如果当前分支只有一个追踪分支,那么主机名都可以省略。
    git push //
    设定远程分支名:如果当前分支与多个主机存在追踪关系,则可以使用 -u 选项指定一个默认主机,这样后面就可以不加任何参数使用 git push。
    git push -u origin master
    上面命令表示将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

  2. git fetch 用法
    git fetch 命令:
    git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
    如果只想取回特定分支的更新,可以指定分支名:
    git fetch <远程主机名> <分支名> //注意之间有空格

  3. git pull 用法(实际上执行的是 git fecth 与git merge)
    git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。
    git pull <远程主机名> <远程分支名>:<本地分支名>
    git pull origin develop 取回远程 origin 主机的 develop分支,再与当前分支进行合并

  4. git remote 命令详解
    git remote 不带参数 查看远程主机名

zh@LAPTOP-HH7QQ562 MINGW64 /c/MyFloder/rpa1/rpa (master)
$ git remote  查看远程机器名  git remote show
origin

git remote -v 查看远程仓库地址

$ git remote -v
origin  http://117.22.255.130:10000/rpademo/rpa.git (fetch)
origin  http://117.22.255.130:10000/rpademo/rpa.git (push)

git remote add url 添加远程仓库地址

git remote rm origin 删除本地配置的远程仓库地址

git remote set-url origin url 设置本地的远程仓库地址

  1. git status 与 git diff 用法:
    9.1 可以查看暂存区与已修改未提交到本地仓库的文件。
    9.2 可以查看本地工作目录已经更改,但是还未放到暂存区的文件。
    9.3 查看未被git 追踪的文件。
    9.4 git diff 文件名 查看某个文件的工作区和暂存区的更改内容
  2. git stash
    保存当前的工作区与暂存区的状态,可以使用多次,每一次后面都会增加版本号。
    git stash pop 将最后一次保存的临时工作空间的文件拉下来
    git stash list 查看所有的临时空间的文件
    git stash clear 清空 stash 空间的文件
  3. git config --list 显示 .git 文件信息,也就是显示git的所有配置信息
  4. git log 用法
    12.1 退出 git log: 英文状态下 Q,大小写都可以
    12.2 git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
    12.3 git log 查看提交的信息,但是不包括
    12.4 git shortlog 查看提交的信息,短格式输出,喜欢用这个
    12.5 git shortlog --author=“username” 显示某个人的提交
    还有很多高级命令请参考以下博客:git log 高级命令
  5. 如何恢复git代码到历史版本
    13.1 git reset --hard origin/master 回复远程仓库master分支代码覆盖本地工作区,暂存区,本地仓库

git reset --soft 版本库ID //仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
git reset --hard 版本库ID //彻底将工作区、暂存区和版本库记录恢复到指定的版本库
git reset --mixed 版本库ID //仅仅只是撤销已提交的版本库和暂存区,不会修改工作区

使用命令 git reset HEAD filepath+filename 撤销commit的代码
关于 Git 的代码回滚,请参考下面的博客:git 回滚代码
13.2 本地工作区代码修改后,但是还没有add到暂存区,使用 git checkout . 让暂存区覆盖本地代码
13.3 git revert 和 git reset 回滚代码的区别
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。

git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

删除暂存区指定文件 git rm --cache 文件名
删除暂存区和工作区的文件 git rm -f 文件名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值