• Git


    基本操作:

    $ git init                #  初始化操作
     
    $ git status              # 查看状态
     
    $ vim user.txt            # 编写文件
     
    $ git add .               #  变绿
     
    $ git commit -m "向user.txt添加name"  # 提交
     
    $ git log                 # 查看日志
     
    $ git reset --hard 3f02c8965996be72b95ded036cc9085b47140dfd  # 回滚到指定版本
     
    $ git reflog              # 回滚之后再查回滚之前的版本日志信息
     
    $ git checkout user.txt   # 将红色的回滚回去
     
    $ git reset head user.txt # 将绿色的回滚到红色
    

    bug修复

    基于stash修复bug

    --------------第一版上线,新功能开发中------------
    
    $ git stash        # 暂存红色开发一半的新功能(这里也有bug)
    
    -----------------------bug修复中-------------------
    
    ------bug修复完了,重新上线,新功能继续开发-----
    
    $ git stash list   # 查看暂存区内容
    
    $ git stash pop    # 取出红色新功能(这里bug也被修复了)
      
    # 如果出现冲突要手动解决!!!
    

    基于分支修复bug

    $ git branch dev      # 创建dev分支,用于开发新功能
    
    $ git branch bug      # 创建 bug分支用于修复bug
    
    $ git checkout dev    # 小鸣切换到dev去开发新功能去
    
    $ git checkout bug    # 小佐切换到bug分支去修复bug
    
    ---- 小鸣新功能开发中,小佐发现master分支的项目有bug,就在bug分支上改bug------
    
    $ git checkout msater # 小佐改完bug后提交并切换到master
    
    $ git merge bug       # 小佐合并修复bug的bug分支到master
    
    $ git checkout msater # 此时小鸣也开发完新功能,提交后切换到master分支
    
    $ git merge dev       # 在master上合并dev新功能
    
    $ git branch          # 查看存在的分支
    
    $ git branch -d bug   # 删除指定分支
    
    
    # 注意:切换分支之前要add .  commit 。如果合并有冲突要手动解决,再提交。
    

    托管到远程仓库

    首先要有github账号(或码云coding)

    首次链接github等远程仓库需要配置个人信息

    $ git config --global user.name "lichengguang"
    $ git config --global user.email lcgsmile@qq.com
    

    以github为例将本地项目push到github

    先在github创建一个项目,最好是跟要托管的项目文件夹同名gitdemo

    在本地本地项目gitdemo中执行下面操作:

    $ git remote add origin https://github.com/lichengguang/gitdemo.git  # 首次推之前指定源
    
    $ git push origin master                                             # 推到远程的master分支,首次推需输入github的用户名密码
    
    # 也可以通过-u指定以后push的默认分支 git push -u origin master ,此操作后,git push 就表示 git push origin master
    

    将github项目clone、pull到本地并:

    ---------------------在公司-----------------------
    
    $ git branch dev                    # 创建dev分支
    
    $ git checkout dev                  # 切换到dev分支进行开发
    
    $ touch work.txt                    # 开发了一半
    
    $ git add .
    
    $ git commit -m "在公司开发了一半"
    
    $ git push origin dev                # push到分支
    
    ------------------------下班回家-----------------------
    
    $ git clone https://github.com/lichengguang/gitdemo.git  # 将项目clone下来
    
    $ cd gitdemo/
    
    $ git branch dev                      # 创建dev分支(默认clone的是master)
    
    $ git checkout dev
    
    $ git pull origin dev                 # 在dev分支下将github上的dev分支pull下来
    
    $ mv work.txt worked.txt              # 继续开发完
    
    $ git add .
    
    $ git commit -m "项目在家完成了"
    
    $ git checkout master
    
    $ git merge dev                        # 切换到master进行合并
    
    $ git push origin master               # 将完成合并的代码push到github的master分支
    

    补充 :

    git pull origin dev 可分解为下面两步来执行:
    
    $ git fetch origin dev
    
    $ git merge origin/dev
    

    git rebase的作用:

    为了让分支树看起来更简化,我们可以选用git rebase代替git merge

    详情参看 https://www.cnblogs.com/elvalad/p/4066133.html

     多人开发方式

    1.协作者和组织

    添加合作者:

    创建组织:

     2.给Github上的开源项目贡献代码

    Fork ---》修改---》pull request---》原作者认可后,方能在原作者的项目上修改成功的。

    3.协同开发

    master分支跟线上的代码一样。另外每个人再使用一个单独的分支,再创建review分支用于代码的review。

    每个人一个功能模块开发完后,合并到review,一般由组长进行代码的review。

     Git链接方式SSH链接

    https方式

    https://github.com/lichengguang/pageer  这种链接方式每次push都需要输入用户名和密码
    
    https://用户名:密码@github.com/lichengguang/pageer   也需要输入用户名和密码
    
    私有项目就这样链接: git clone https://用户名:密码@github.com/lichengguang/pageer

    ssh方式

    $ ssh-keygen.exe  # 生成ssh
    
    $ cat ~/.ssh/id_rsa.pub  查看公钥
    
    公钥:ssh-rsa......lcgsmile@qq.com

    将公钥配置到github的SSH keys选项下,新建一个SSH keys 标题任意,将公钥粘贴到内容区然后保存就行,以后就可以用过SSH链接,无需每次输入账户和密码。

     

    .ignore

    有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示“Untracked files …”,有强迫症的童鞋心里肯定不爽。Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

    官网各种语言相关的.ignore参考:https://github.com/github/gitignore

    基于tag实现版本控制

    $ git tag                       # 查看已有版本
    
    $ git tag -a v.10 -m '描述信息'  # 创建版本信息
    
    $ git push origin --tags        # 将版本信息push到远程
    
    $ git pull origin --tags        # 将版本信息pull到本地
    
    $ git clone -b v1.0 https://github.com/lichengguang/pageer.git  # 下载指定版本的一种方式
    

    Git常用命令差不多就这些了~~~

  • 相关阅读:
    安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.2出现0x80072f8a未指定的错误
    [迷宫中的算法实践]迷宫生成算法——Prim算法
    [MVC学习笔记]7.使用极验验证来制作更高逼格的验证码
    Android UI--提高Android UI体验
    Genymotion的使用 -- A Faster Android Emulator
    【Xamarin】Visual Studio 2013 Xamarin for Android开发环境搭建与配置&Genymotion
    【ASP.NET Web API2】利用HttpClient调用Web API(TODO)
    VMware 11 安装 Mac OS X10.10
    ASP.NET MVC 缓存Outputcache (局部动态)
    【ASP.NET Web API2】初识Web API
  • 原文地址:https://www.cnblogs.com/0bug/p/8708827.html
Copyright © 2020-2023  润新知