zoukankan      html  css  js  c++  java
  • 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常用命令差不多就这些了~~~

  • 相关阅读:
    A1066 Root of AVL Tree (25 分)
    A1099 Build A Binary Search Tree (30 分)
    A1043 Is It a Binary Search Tree (25 分) ——PA, 24/25, 先记录思路
    A1079; A1090; A1004:一般树遍历
    A1053 Path of Equal Weight (30 分)
    A1086 Tree Traversals Again (25 分)
    A1020 Tree Traversals (25 分)
    A1091 Acute Stroke (30 分)
    A1103 Integer Factorization (30 分)
    A1032 Sharing (25 分)
  • 原文地址:https://www.cnblogs.com/0bug/p/8708827.html
Copyright © 2011-2022 走看看