zoukankan      html  css  js  c++  java
  • git 使用总结

    参考
     
    一、安装
    1. 从官网下载安装包 
     
    2. 查看命令: 
    1)查看是否安装git, 以及安装的版本
    $ git --version
    2)查看安装目录:
    $ which git
    二、安装完成后,设置账户
    $ git config --global user.name “Your name"
    $ git config --global user.email “email@exp.com"
    三、创建版本库
    1. 创建空目录
    $mkdir learngit
    $cd learngit
    $pwd
    pwd: linux 查看当前目录绝对路径
     
    2.将空目录变成git可管理仓库
    $git init
     
    Initialized empty Git repository in /Users/zmm/learngit/.git/
    .git是隐藏文件,可用 ls -ah 查看
     
    3.将文件添加到版本库(创建文件)
    只能跟踪记录文本文件的修改,因为文本文件有编码,图像、视频没有。
     
    将文件readme.txt 放到learnt目录(或子目录)下,其内容如下:
    Git is a version control system.
    Git is free software.
    1)把文件放到git仓库方式:
    $git add readme.txt
    (无显示)
    提交多个文件用空格隔开
    $git add file1 file2 file3
    提交所有变化(的文件)
    $git add -A #-A <=> -all, 是".""-u"功能命令的集合
    提交所有变化到暂存区,包括文件修改内容,新文件,不包括删除文件
    $git add .
    提交已经被add的文件(修改或删除文件,不包括新文件)
    $git add -u  #-u <=> -update
    2)把文件提交到仓库
    $git commit -m “wrote a read file"
    [master (root-commit) cb 926e7] wrote a readme file 
    1 file changed, 2 insertions(+)
    create mode 100644 readme.txt
    4.修改文件
    1)修改readme.txt->
    Git is a distributed version control system.
    Git is free software.
    2)查看修改
    $git status
    (能告诉状态:是否修改,但是不能告诉具体修改的信息)
     
    另外一种,查看difference
    $git diff
    查看最近两次提交之间有哪些文件有修改
    $git diff HEAD HEAD^ --stat
    3)提交修改
    与提交新文件一样
    $git add readme.txt
    $git commit -m “add distributed"
    4)撤销add修改
    仅从暂存区删除文件
    $ git rm --cached "filepath" 

    从暂存区删除文件 + 删除物理文件

    $ git rm --f "filepath"
    5.版本回退(已提交)
    1)修改readme.txt->
    Git is a distributed version control system.
    Git is free software distributed under the GPL.
    2)提交, 与提交新文件一样
    $ git add readme.txt
    $ git commit -m "append GPL"
    3)查看日志
    $git log
    或
    $git log --pretty==oneline
    过滤除版本号及填写日志外的其他信息
     
    4)回退到上一个版本
    $git reset --hard HEAD^
    5)查看内容(linux命令)
    $cat readme.txt
    6)恢复至某版本
    $git reset --hard 3628164 (版本号不用写全,只用写前几位)
    7)查看每次提交的版本的版本号
    $git reflog
    6.管理修改
    将工作区修改放入暂存区
    $git add filename
    将暂存区修改提交
    $git commit -m “a log"
    查看git状态
    $git status
    查看文件内容
    $cat filename
    查看工作区与版本库最新版本区别
    $git diff HEAD -- readme.txt
    7.撤销修改(未提交)
    1)文件未add(添加至缓冲区),丢弃工作区修改
    $git checkout —— filename # 丢弃某个文件
    $git checkout ——. # 丢弃全部
    2)文件已add(添加至缓冲区),首先撤销缓冲区修改,然后丢弃工作区修改
    $git reset HEAD filename
    $git checkout — filename
    3)文件已commit到本地分支,但未git push到远程服务器
    $git log # 得到你需要回退一次提交的commit id
    $git reset --hard <commit_id> # 回到某个想要的版本
    $git reset --hard HEAD^ # 回到最新的一次提交(windows 下该命令后面需要再加^, 或者"head^"
    $git reset HEAD^ # 代码保留, 回到git add之前
    8.删除文件
    删除步骤
    • 工作区删除文件
    $rm readme.txt
    • 暂存区删除文件
    $git rm readme.txt
    • git版本库删除文件(提交)
    $git commit -m “remove readme.txt"
    删错恢复,恢复至最近的最新版本
    $git checkout --readme.txt
     
    9.远程仓库
    • 创建SSH Key
    $ssh -keygen -t rsa -C “my email@exp.com"
    • 登录github(将远程仓库建立在github,交由github托管)
     
    • 设置github 的SSH keys
    title任意
    key= /User/zmm/.ssh/id_ras.pub内容
     
    10.在本地添加远程仓库
     
    1)需要先在github创建版本库 ,然后根据相应命令行提示操作
     
    2)在本地添加远程仓库
    $ git remote add origin git@github.com:fortunely/learngit.git

    "git@github.com:fortunely/learngit.git"为自己在远程github创建版本库生成的仓库地址

     
    3)切换工作区间
    如果提示错误:
    fatal: Not a git repository (or any of the parent directories): .git
    是因为没有将当前工作区间切换到git工作区(用$git init初始化过)
     
    4)将内容推送到远程仓库
    第一次推送 master分支,加上-u ,git会把本地master推送至远程master新分支,并且关联起来
    $git push -u origin master
    后续推送
    $git push origin master
     
    11.从远程仓库克隆
    从远程仓库下载至本地
    SSH方式
    $git clone git$github.com:fortunely/gitskills.git
     
    HTTPS方式
    $git clone https://github.com/fortunely/datastructure.git
    12.创建合并分支
    1)创建dev分支,然后切换到dev分支
    $git checkout -b dev
    相当于
    $git branch dev
    $git checkout dev
    2)查看当前分支, 带*表示当期分支
    $git branch
     
    3)修改文件->提交
    $git add readme.txt
    $git commit -m “branch test"
    4)合并指定分支到当前分支
    $git merge dev
    5)删除分支
    $git branch -d dev
    13.解决冲突
    1)创建新分支feature1
    $git checkout -b feature1
    2)修改文件->添加并提交
    $git add readme.txt
    $git commit -m “AND simple"
    3)切换至master分支
    $git checkout master
    4)修改文件->添加并提交(与上一次修改不同)
    $git add readme.txt
    $git commit -m “& simple"
    5)合并分支
    $git merge feature1
    导致冲突产生文件用
    <<<<<<< HEAD
     
    =======
     
    >>>>>>> feature1
    标记出了不同分支内容, 修改这些标记的内容,然后保存,再提交
    $git add readme.txt
    $git commit -m “conflict fixed"
    6)查看分支合并情况
    $ git log --graph --pretty=oneline --abbrev-commit
    或者
    $ git log --graph
    删除feature1分支
    $git branch -d feature1
    14.分支管理
    1)禁用Fast forward模式,因为这种模式下删除分支后,会丢掉分支信息;禁用ff模式,merge时产生新commit
     
    2)创建并切换分支dev
    $git checkout -b dev
    3)修改文件->提交
    $git add readme.txt
    $git commit -m “add merge"
    4)切换回master分支
    $git checkout master
    5)准备合并dev分支,同时禁用fast forward
    $git merge --no-ff -m “merge with no-ff” dev

    -m 参数的意思是创建一个新的commit

     
    6)查看分支历史
    $git log --graph --pretty=oneline --abbrev-commit
    7)分支使用策略
    master作为稳定版本
    dev分支作为开发版本,不稳定
    每个开发者都在dev分支上干活,并且有自己分支
     
     
     
     
     
     
     
     
  • 相关阅读:
    强化学习的基本迭代方法
    基于文本描述的事务聚类
    学习强化学习之前需要掌握的3种技能
    其它 华硕 ASAU S4100U 系统安装 win10安装 重装系统 Invalid Partition Table 解决
    数据分析 一些基本的知识
    Python 取样式的内容 合并多个文件的样式 自定义样式
    电商 Python 生成补单公司需要的评论格式3
    SpringBlade 本地图片上传 生成缩略图
    SQL Server 字符串截取
    SpringBlade 本地图片上传
  • 原文地址:https://www.cnblogs.com/fortunely/p/14877716.html
Copyright © 2011-2022 走看看