zoukankan      html  css  js  c++  java
  • Git的使用

    前言

    • git没有系统的记录过,每次使用的时候会遇到一些问题,老是百度在解决,很麻烦,所以系统的记录一下git的使用过程和遇到

    git 的使用和记录

    git安装

    检出仓库

    • 本地仓库的克隆 git clone /path/workspace
    • 远程仓库克隆可以使用ssh或者http方式 git clone username@host:/path/workspace

    新建仓库

    • git init是建立仓库

    git init

    命令是创建一个新的git仓库,他是将已存在的但没版本版控制项目转换成git仓库,或者创建一个新的仓库。
    git init <directory>:创建一个文件夹并.git初始化
    git init --bare <directory>:创建一个裸仓库但是忽略工作目录。

    git clone

    git clone命令拷贝整个git仓库,除了工作副本是一个完整git仓库,包含自己的历史,文件,和环境
    为了方便clone自动创建一个名为origin的远程,指向原远程仓库,这样交互更简单。

    用法

    git clone <repo>:将位于的仓库克隆到本地机器,原仓库可以在本地文件系统。

    git config

    命令允许你命令你在配置git安装,你这个命令定义所有配置。

    用法

    git config user.name <name>:定义当前仓库使用的作者姓名通常使用--global标记当前用户配置。
    git config --global user.email <email>:定义当前作者邮箱。
    git config --global alias.<alias-name> <git-command>为git创建一个快捷方式(起别名)。
    git config --global --edit:用文本编辑器打开全局配置文件,手动编辑。

    工作流

    • 本地仓库有git维护三棵树:
      • 工作目录:他是实际的文件。
      • 缓存区:他是缓存区,临时保存你的改动。
      • HEAD:指向最近一次提交的结果。

    添加和提交

    添加暂存区

     git add <filename>
     git add .
    

    git add
    git add命令是将工作取添加到缓存区,可以配合git status来查看工作目录和缓存状态。

    工作原理

    git addgit commit这两个命令组成git最基本的工作流。他们作用是将项目诸多的版本记录到仓库的历史
    中,git reset命令是用于撤销提交或者缓存的快照。
    除了git addgit commit之外,git push也是完整的git协作流程重要一环。

    用法

    git add <文件>:缓存区提交文件
    git add <目录>:缓存目录下所有要更新的,准备下次提交。
    git add -p:开始交互式缓存,你可以将某个文件的一处更改为下次提交的缓存。

    git status

    git status命令显示工作目录和缓存目录状态。你可以看到什么地方被缓存了,哪些还没有,以及
    哪些还未被git追踪。status的输出不会告诉你任何已提交的项目历史信息,如果想看使用git log.

    忽略文件

    未追踪文件有两种,他们要么是项目新增还未提交的文件,要么是像.exe.obj等二进制文件。
    只要在.gitignore文件中,所有要忽略文件单独一行,*是字符统配符,比如Python的*.pyc

    git log

    git log:使用默认格式显示完整的历史项目,如果超过一屏,你可以使用空格滚动q退出

    之后,commit
    git commit -m '提交信息'
    现在提交到了HEAD,但是还没提交到远程仓库

    推送改动

    现在改动已经在本地的HEAD中了,执行下面命令可以将改动提交到远程仓库:
    git push origin master
    也可以吧master换成想要分支。
    如果还没有克隆仓库,有想将你的仓库连接某个仓库,可以执行下面命令:
    git remote add origin <server>
    这样就能推送到服务器上

    • 这个origin是的别名,取什么名字都可以,你也可以push将替换成
      origin。但是为了push方便,第一次还是用remote add
    • 如果没有仓库,建立是不要生成readme.md的repository,然后将代码push上去

    检出之前的提交

    git checkout:检出文件,检出提交和检出分支,这里关心前两种

    用法

    git check master:
    回到master分支。
    git checkout <commit> <file>:
    查看之前的版本,将工作目录的文件变成中间那个文件的拷贝,并添加缓存区。
    git checkout <commit>:
    跟新工作目录所有文件,使得某个特定文件一致,你可以提交哈希字串,或者参数,这会使你分离HEAD状态。

    回滚错误修改

    git revert命令是用来撤销上一次提交的快照文件,但是,他是通过搞清如何撤销这个提交的引入更改的,最后加一个撤销的更改新的提交,而不是从项目历史中移除这个提交。

    保持同步

    git remote add <name> <url>:
    创建一个新的远程仓库的连接,添加后name和url便捷的别名其它git命令中使用
    git fetch:
    命令是将提交从远程仓库导入你本地仓库。拉取下来的提交存储为远程。

    git branch:
    分支代表一条独立的开发流水线。分支是我们,你可以把踏勘作请求的一种方式。新的提交会被存放到当前分支的历史中。
    用法:
    git branch:列出仓库所有的分支。
    git branch <branch>:创建一个名为的分支,不会自动切换到那个分支去
    git checkout联合使用

    git merge <branch>:将指定的分支merge到当前分支
    git merge --no-ff <branch>:指定分支合并当前分支,但是总是生成合并提交,记录所有合并。

    使用的例子记录:

    案例:建立本地分支推送到远程
    1.git branch -a:查看所有分支有哪些
    2.git pull:如果需要copy哪个分支就在这个下拉一下最新的代码
    3.git checkout -b dev:切换分支并创建新的本地分支dev
    4.git push origin dev:remotedev:推送本地分支到远程dev->remotedev(没有创建)
    5.git checkout -b dev origin/dev:远程分支存在,但本地没有
    6.git remote add origin http://***/**/****.git:和远程关联一起
    案例:修改本地分支推送远程
    1.git branch -a:查看所有分支有哪些
    2.git branch -u origin/remotedev:在要推送的分支关联远程分支remotedev
    3.git push:推送,这时控制台会告诉应该使用哪个命令推送远程,使用第一个意思是推送到远程关联分支,下一个是正常推送和本地分支名字一样
    案例:删除远程分支
    git push origin --delete [branch_name]
    案例:删除本地分支
    git branch -D tmp
    案例:远程别的分支替换本地
    git fetch --all
    git reset --hard origin/master(想替换名字)

    参考:
    git命令

  • 相关阅读:
    IdentityServer4 接口说明
    MQTT中的Retained(保留消息) 与 LWT(最后遗嘱)
    Docker常用命令
    开源服务容错处理库Polly使用文档
    MQTT 主题的高级特性
    MQTT的$SYS主题定义
    RabbitMQ消息队列之Windows下安装和部署
    RabbitMQ多台物理机集群搭建
    Ocelot.json完整配置文件
    nginx.conf文件配置明细详解
  • 原文地址:https://www.cnblogs.com/liuyang95/p/13200004.html
Copyright © 2011-2022 走看看