git使用简述

小编 2026-06-12 阅读:1088 评论:0
Git的常用命令 Git 配置信息 身份信息 (- -global是全局参数,意味着本机中的所有仓库都共同使用。如果不加则只适用于本仓库。) $ git config --global u...

Git的常用命令

Git 配置信息

  • 身份信息
    (- -global是全局参数,意味着本机中的所有仓库都共同使用。如果不加则只适用于本仓库。)
$ git config --global user.name \"用户名\"
$ git config --global user.mail \"邮箱\"
  • 忽略特殊文件
    在git工作区的根目录下创建.gitignore文件,将要忽略的文件填进去。
    (windows下新建txt文件,另存为.gitignore即可得到.gitignore文件,并且要将.gitignore文件add,commit之后才可忽略所需文件。)
/bin/ 忽略整个bin目录
*.txt 忽略全部txt文件
......
  • 配置别名
$ git config --global alias.ad add
$ git config --global alias.cit commit 

创建仓库

  • 创建一个新的本地仓库: $ git init

  • 克隆一个远程仓库

$ git clone ssh://user@domain.com/repo.git
$ git clone http://user@domain.com/repo.git
  • 远程库(以GitHub为例,创建完即可关联远程库)
    1.创建ssh-key(ssh-key存储在用户主目录下单.ssh文件中。id_rsa文件存储私钥,id_rsa.pub存储公钥):$ ssh-keygen -t rsa -C \"youremail@example.com\"
    2.登陆GitHub,打开“Account settings”,“SSH Keys”页面,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。

本地修改

  • 查看本地工作目录的状态: $ git status

  • 查看修改内容: $ git diff

  • 在下次提交前将修改文件到添加到stage状态: $ git add <file>

  • 在下次提交前将全部修改文件添加到stage状态: $ git add .

  • 提交stage状态中先前保存的文件: $ git commit -m \"描述信息\"

  • 提交stage状态中的全部保存文件: $ git commit -a

  • 删除文件
    1.直接资源管理器删除等价于$ rm <file>
    2.如果确实需要删除,再执行:$ git rm <file>,再执行:$ git commit -m \"delete <file>\"
    3.如果误删且还未提交可执行:$ git checkout -- <file>回退到被删之前的状态。
    4.如果误删且已提交则可执行:$ git reset --hard head^,另版本回到上一版本从而得到误删文件。

提交历史

  • 显示所有提交历史,从新到旧: $ git log

  • 显示所有命令历史:$ git reflog

  • 显示单个文件的历史记录: $ git log -p <file>

  • 显示谁在什么时间修改了文件中的什么内容: $ git blame <file>

分支

  • 显示所有分支,包括远程分支: $ git branch -av

  • 显示本地分支: $ git branch

  • 新建分支: $ git branch <new-branch>

  • 新建一个分支并跳转到新分支: $ git branch -b <new-branch>

  • 跳转到另一分支: $ git checkout <branch>

  • 根据远程分支创建一个新的对应本地分支: $ git checkout -b <branch> <remote/branch>

  • 删除分支: $ git branch -D <branch>

  • 合并分支到当前分支:$ git merge <branch>

  • 合并分支到当前分支并添加记录:$ git merge --no--ff -m \"commit\" <branch>

  • 将分叉的提交变为直线:$ git rebase <branch>

  • 存储分支状态:$ git stash

  • 查看储存分支:$ git stash list

  • 恢复分支并删除stash内容:$ git stash pop

  • 恢复分支且不删除stash内容:$ git stash apply

标签

  • 为当前最新提交建立一个标签(默认为head,也可指定commit id前7位)

轻量标签
一个特定提交的引用

$ git tag <tag-name> (例:v1.0)

附注标签:(建议使用)
存储在 Git 数据库中的一个完整对象。 它们是可以被校验的。其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息。并且可以使用 GNU Privacy Guard (GPG)签名与验证。
(-a指定标签名,-m指定说明文字)

$ git tag -a <tag-name> -m \"标签详细说明\" (例:-a v1.0 -m \"正式版第一版\")
  • 显示所有标签:$ git tag
  • 显示标签说明文字:git show <tag_name>
  • 推送一个标签:$ git push origin <tag_name>
  • 推送所有未推送标签:$ git push --tags
  • 删除本地标签:$ git tag -d <tag_name>
  • 删除远程标签:$ git push origin :refs/tags/<tag_name>

更新与推送

  • 获取远程库当前配置信息:$ git remote -v
  • 显示远程库信息(github的远程库名默认为origin): $ git remote show <remote>
  • 关联远程库:$ git remote add <shortname><url>(例:$ git remote add origin git@server-name:path/repo-name.git)
  • 下载远程库某分支的所有更新并且直接合并到当前head中:$ git pull <remote><branch>
  • 第一次推送master分支的所有内容:$ git push -u origin master,以后再次推送时:$ git push origin master
  • 推送本地某分支的所有更新到远程库中:$ git push <remote> <branch>
  • 删除远程库分支:$ git branch -dr <remote/branch>

撤销

  • 丢弃掉本工作目录下的所有更改(head表示当前版本):$ git reset --hard head
  • 丢弃工作区某文件的更改:$ git checkout -- <file>
  • 丢弃暂存区的修改:$ git reset head <file>
  • 回退到上一个版本(head^^上上个版本,head~10上十个版本):$ git reset --hard head^
  • 回退到指定版本:$ git reset --hard <commit id>

Git的使用建议

  • 多多使用commit,每一次的commit都应当与修改的内容相关。比如修改两个不同的bug,则每一个bug都应该有一个相关的commit。

  • 不要commit还未完成的工作。

  • 在commit之前需要完成代码的测试工作。

  • 如何写一个好的commit呢?
    1.这一次的修改动机是什么。
    2.这次修改和之前有什么区别。

  • 多使用分支来开发新功能或者修改bug。

  • 查看帮助文档总是有没错的:\" $ git help

  • 建立新仓库的步骤:

  1. $ git init //初始化仓库

  2. $ git add .(文件name) //添加文件到本地仓库

  3. $ git commit -m \"first commit\" //添加文件描述信息

  4. $ git remote add <shortname><url>(例:$ git remote add origin git@server-name:path/repo-name.git) //链接远程仓库,创建主分支

  5. $ git pull <remote><branch> // 把本地仓库的变化连接到远程仓库主分支

  6. $ git push -u origin master //把本地仓库的文件推送到远程仓库

参考

git-book
http://www.runoob.com/w3cnote/android-tutorial-git-repo-operate.html);
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表