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

  • 相关阅读:
    response.redirect on asp.net is a 302 jump action
    什么吃掉了我的硬盘?
    百度流量统计将会影响搜索的排名
    发邮件 python
    bottle template usage
    想提神,喝中药,咖啡可可没用的
    企业退信的常见问题?
    用UnixBench测试VPS性能 判别是否值得购买
    域名注册及免费空间and企业邮箱
    LNMP一键安装包是什么?
  • 原文地址:https://www.cnblogs.com/JerryMouseLi/p/11031006.html
Copyright © 2011-2022 走看看