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

    Git使用及代码仓库介绍


    Git是一个很强大的代码版本管理工具,在Git的使用过程中,不断学习积累Git的命令行及其作用,在本篇文章中记录了笔者使用过程的积累,以后还会持续更新。代码仓库分为分为工作区 暂存区 本地仓库 远程仓库 四个区,主要工作流程为暂存,拉取,恢复暂存,合并(如果有冲突),提交,推送

    1.初始化Git

    git init

    2.创建忽略文件

    touch .gitignore(这里面可以写一些忽略文件,git add/commit/push的时候不会上传忽略文件,可以参照其它项目)

    3.把远程repository加到本地

    git remote add origin 远程地址

    4.将工作区代码提交到本地暂存区

    git add --all
    git add .
    

    5.配置用户名邮箱

    git config user.name "JerryMouseLi"
    git config user.email "j213@137.com"
    

    6.提交暂存区代码到本地代码仓库

    git commit -m "提交备注"

    7.从远程仓库拉取代码到本地仓库

    git pull origin master
    pull包含了fetch跟merge将本地仓库的变化与远程仓库变化,同名文件合并。这里有冲突需要解决冲突。

    8.提交本地仓库代码到远程仓库

    git push origin maste

    9.硬恢复到指定提交版本

    git reset --hard commit_id

    9.1 本地仓库强制覆盖远程仓库

    `
    git push origin master --force

    `

    10.导出提交修改日志

    git log --pretty=format:"%ai , %an: %s" --since=“100 day ago” >> ~/Desktop/commit.log
    
    git log --pretty=format:"%ai , %an: %s" >> ~/Desktop/Readme.log
    
    最终采用
    git log  --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:"%ad , %an: %s" >> ~/Desktop/Readme.log 
    
    选项   说明
    %H    提交对象(commit)的完整哈希字串
    %h    提交对象的简短哈希字串
    %T    树对象(tree)的完整哈希字串
    %t    树对象的简短哈希字串
    %P    父对象(parent)的完整哈希字串
    %p    父对象的简短哈希字串
    %an    作者(author)的名字
    %ae    作者的电子邮件地址
    %ad    作者修订日期(可以用 -date= 选项定制格式)
    %ar    作者修订日期,按多久以前的方式显示
    %cn    提交者(committer)的名字
    %ce    提交者的电子邮件地址
    %cd    提交日期
    %cr    提交日期,按多久以前的方式显示
    %s    提交说明
    

    11.查看本地分支与远程分支

    git branch -a 查看所有分支
    
    git branch -r查看远程分支
    
    git branch  查看分支
    

    12.下载远程分支

    git clone -b CQDemo https://git.dev.tencent.com/xxx/xxx.git

    13.找回暂存区里丢失的代码

    git fsck --lost-found //找回git add过但是已经不存在文件中的内容

    14 修改最近一次commit的注释

    git commit --amend
    commit提供了一个--amend参数,可以修改最后一次提交的信息.但是如果你已经push过了,那么其历史最后一次,永远也不能修改了。

    15.修改作者名称

    主要我用来导出git日志的时候用
    git commit --amend --author "xw aa.hbl@gmail.com"

    // 设置全局
    git config --global user.name "Author Name"
    git config --global user.email "Author Email"

    // 或者设置本地项目库配置
    git config user.name "Author Name"
    git config user.email "Author Email"

    16. git tag的用法

    我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的

    16.1.git的tag功能

    git 下打标签其实有2种情况

    • 轻量级的:它其实是一个独立的分支,或者说是一个不可变的分支.指向特定提交对象的引用
    • 带附注的:实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证,电子邮件地址和日期,一般我们都建议使用含附注型的标签,以便保留相关信息
      所以我们推荐使用第二种标签形式

    16.2.创建tag

    git tag -a V1.2 -m 'release 1.2'
    

    上面的命令我们成功创建了本地一个版本 V1.2 ,并且添加了附注信息 'release 1.2'

    16.3.查看tag

    git tag
    

    要显示附注信息,我们需要用 show 指令来查看

    git show V1.2
    

    但是目前这个标签仅仅是提交到了本地git仓库.如何同步到远程代码库

    git push origin --tags
    

    如果刚刚同步上去,你缺发现一个致命bug ,需要重新打版本,现在还为时不晚.

    git tag -d V1.2
    

    到这一步我们只是删除了本地 V1.2的版本,可是线上V1.2的版本还是存在,如何办?这时我们可以推送的空的同名版本到线下,达到删除线上版本的目标:

    git push origin :refs/tags/V1.2
    

    如何获取远程版本?

    git fetch origin tag V1.2
    

    这样我们可以精准拉取指定的某一个版本.适用于运维同学部署指定版本.

    17.git checkout -- file 可以丢弃工作区的修改

    git checkout -- readme.txt

  • 相关阅读:
    BZOJ2219数论之神——BSGS+中国剩余定理+原根与指标+欧拉定理+exgcd
    Luogu 3690 Link Cut Tree
    CF1009F Dominant Indices
    CF600E Lomsat gelral
    bzoj 4303 数列
    CF1114F Please, another Queries on Array?
    CF1114B Yet Another Array Partitioning Task
    bzoj 1858 序列操作
    bzoj 4852 炸弹攻击
    bzoj 3564 信号增幅仪
  • 原文地址:https://www.cnblogs.com/JerryMouseLi/p/11031006.html
Copyright © 2011-2022 走看看