git 常用指令

今天开始学习git

1. 什么是git

  • git - 开源的分布式版本控制器
  • Linux Benedict Torvalds

2. 版本控制工具

SVN:  集中式版本控制器  --- 代码库放在服务器上集中管理  -- 必须实时联网

Git:    分布式版本控制器  --- 服务端和客户端都有代码库  -- 速度快  --- 不用实时联网

3. git工作流程

  • clone   --- CheckOut
  • commit -- 将代码提交到本地仓库
  • push   --- 将本地仓库推送到服务器
  • pull     --- 更新本地仓库

4. 

  • 新建一个"本地仓库"  $ git init
  • 配置仓库  
    • 告诉git你是谁 --  $ git config user.name lnj
    • 告诉git怎么联系你 -- $git config user.email lnj@itcast.cn
    • 上面配置为 一次性配置方式, 配置文件在管理文件夹下
    • 下面的方式为 一劳永逸的方式
    • $ git config --global user.name jiaguanglei

    • $ git config --global user.email 2318336342@qq.com

    • 点击前往 -- 个人  会看到一个.gitconfig 文件(隐藏)

5. 学习git指令

git 学习指令和SVN类似, git是通过一个不可编辑的指南,-- $q 退出    $空格 - 下一页   $ctrl + b -- 上一页   $/+"搜索文字"

$git help

  • $git help clone   -- 
  1. $ touch main.c   -- 创建文件
  2. $ open main.c     -- 打开文件
  3. $ git status   --- 查看文件状态
  4. $ git add  main.c --- 添加文件到"暂存区"
    • # 将当前文件夹下的所有新建或修改的文件一次性添加到代码库

      $ git add .

  5. $ git commit main.c  --- 更新本地代码库
    • [注意] 如果没有在commit后面加上 -m, 说明修改了什么, 会自动进入一个vim界面, 要求我们输入修改信息;
    • 按键盘上的 i o, 进入输入状态  -- 直接输入 修改内容
    • 修改完以后, 按esc,  输入":" +  wq 退出
    • 所以以后终端提交的时候, 最好加上 -m
    • $  git commit main.c -m "添加了返回值模块"

[注意] 未添加的颜色:  红色;-------工作区 -- manager 当前能看到的文件夹

       add 添加到暂存区的颜色: 绿色  --- 暂存区 -- commit --- 本地仓库repository

[注意]git默认是没有简写指令, 起别名指令 -- $ git config alias.st status     $ git config alias.cm "commit -m"   $ git config alias.st statusclear -- 清除别名

6. $ git log main.c  --- 打印修改记录   

git的版本号 是40位的哈希值

svn 是一个整数

   $ git reflog main.c  --  查看所有修改信息

    • # 查看所有版本库日志 ---  $ git log
    • # 查看指定文件的版本库日志  ---  $ git log 文件名
    • # 配置带颜色的log别名  ---  $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

7. 版本恢复

  • 已经提交

git reset --hard HEAD^    ----  强制恢复到 上一个版本

$ git reset --hard HEAD~(3)  --- # 回到之前第3个修订版本

$ git reset --hard 版本号前七位   --- 哈希值前七位

$ git reset e695b67  ---  # 回到指定版本号的版本

$ git reflog  --- # 查看分支引用记录

  • 未提交

$ git checkout main.c

$ git reset --hard HEAD  ----- # 回到当前版本,放弃所有没有提交的修改

       8. 查看修改文件

  • $ git diff    --- 查看修改内容  绿色-新增  红色-删除

6. 远程仓库配置

 svn 需要一个单独的服务器

 git 文件, U盘, 云盘, github, OSChina

  1. 新建git的远程仓库  --- 这个仓库仅仅用于管理代码,不参与开发.
    • git init --bare  

     2.  项目经理初始化项目 

2.1 先初始化一份空的仓库到本地

  $ git clone 代码库地址(也可以是本地路径)

2.2 忽略不需要加入版本控制器的文件 

    .gitignore 

  [注意]配置gitignore, 只需要在github上搜索, .gitignore  然后复制代码即可; 

     配置gitignore一定要在和 .git隐藏文件同一级的目录下进行

  2.3 生成.gitignore 文件以后, 还需要将gitignore添加到代码库中,  

    • git add .gitignore
    • git commit .gitignore -m "配置忽略文件"

  2.4 新建项目

    • commit - 将代码提交到本地
    • git中默认会创建一个分支, origin/master  -- 相当于 SVN 中的=trunk
    • push  -- 将代码提交到远程仓库

总结:

  1> git 每次修改都要要add

  2> git 每个开发者本地都有一个仓库

  3> git 每次提交, 都是先提交到本地仓库, 再提交到远程仓库

7. 新人服务器的搭建

  1> 新建一个新人服务器

  2> 初始化仓库  ---- $ git init --bare

  3> 添加一个新的远程仓库, sourceControl  -- config 仓库  --- add   --- done

  4> 经理将新的代码 push 到新的服务器

8. git 分支管理

  • $ git tag -a v1.0 -m "Version 1.0"    ---- 在本地代码库 给项目打标签 [仅仅是本地标签, 和服务器没有关系]
  • $ git tag                                -----  查看标签
  • $ git push origin v1.0   ----- 将标签推送到远程仓库中

 开启一个分支

  • $ git checkout -b new_branch_name  -- 新建一个分支

  • $ git tag -a v1.0 -m "Version 1.1"      --- 本地保存修复
  • $ git push origin v1.1                        ---  更新远程仓库

02. 分支管理 - Tag

================================================================================

# 查看当前标签

$ git tag

# 在本地代码库给项目打上一个标签

$ git tag -a v1.0 -m 'Version 1.0'

# 将标签添推送到远程代码库中

$ git push origin v1.0

# 使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本

# 签出v1.0标签

$ git checkout v1.0

# 从签出状态创建v1.0bugfix分支

$ git checkout -b bugfix1.0

# 查看远程分支

$ git branch -r

# 删除远程分支

$ git branch -r -d origin/bugfix1.0

 

原文地址:https://www.cnblogs.com/guangleijia/p/4817313.html