zoukankan      html  css  js  c++  java
  • Git命令和使用

    Git & GitHub
    1. Git是一个工具,用于命令行操作
    2. GitHub是一个协同工作平台
    包括:
      1. Remote original Repository - 远程主仓库(上线唯一仓库)
      2. Remote personal Repository - 远程个人仓库(管理个人代码)
      3. Local Repository - 本地版本库
      4. Temp Repository - 暂存库
      5. Terminal Repository - 工作区
    Git安装配置
    用户信息
    1. 配置全局用户信息
    git config --global user.name "[name]"
    git config --global user.email "[email]"
    1. 查看全局配置信息
    git config --global --list
    1. 配置当前仓库用户信息
    git config user.name "[name]"
    git config user.email "[email]"
    1. 查看当前仓库配置信息
    git config --local --list
    1. 查看配置信息
    git config --list
    1. 查看某项配置信息
    git config user.name 这里的 user.name可以是其他参数
    Git工作流程
    Master资源 - 本账户Git资源 - 本地资源
    一般的工作流程如下:
    1. 将远程唯一最新Master资源fork到本账户Git资源
    2. 克隆本账户Git资源到本地
    3. 在本地的资源上做修改
    4. 查看修改、提交修改到本账户Git资源、撤回修改
    5. 将本账户Git资源的修改提交到Master资源,pull request
    6. 如果Master资源有修改,可以更新本账户Git资源
    Git工作区、暂存区和版本库
    1. 工作区:本地电脑的工作目录
    暂存区:本地修改暂时存放的地方
    版本库:本地修改的版本记录
      1. git add - 工作区的修改更新到暂存区
      2. git commit - 暂存区的修改更新到版本库
      3. git reset HEAD - 暂存区被master分支指向的目录被替换
      4. git checkout - 清除工作区中未添加到暂存区的改动
      5. git checkout HEAD - 用master分支的内容清除工作区中未提交的改动、清除暂存区中未提交的改动
    Git 远程仓库
    Git不像SVN是中心服务器,如果要分享协作,需要将数据放到服务器上,将Github作为远程仓库服务器
    Github作为远程仓库的资源,与本地Git资源通过Https或SSH协议传输,SSH方式更安全,且无序多次输入用户名密码
    1. ssh -keygen -t rsa -C "[email]" - 生成SSH公钥key,找到 cat ~/.ssh/id_rsa.pub,并复制显示内容
    2. 回到Github,在账户中添加SSH key,将第1步复制的内容粘贴到SSH key内容中
    3. ssh -T git@github.com - 验证SSH key是否添加成功
    4. 在Github上新建repository,或fork其他资源到本人Github资源
      1. 对于新建的repository,在本地及其目录新建文件夹,git init命令初始化, git add or git commit -m等添加内容,通过git remote add命令与本人Github资源绑定
      2. 对于已经存在的repository (fork到本人的Github资源,或已有的Github资源) , clone到本机
    1. git remote add (alias) [url]
    举例:
    git remote add origin git@github.com:tianqixin/runoob-git-test.git
    1. git push -u origin master - 将本地的修改提交到远程仓库上
    2. git remote - 查看当前的远程库,参数-v,可查看实际连接地址
    3. git fetch (remote name) (branch name) - 拉取远程仓库的分支内容
    4. git merge (remote name)/(branch name) - 将远程仓库的分支内容合并到本地分支,--no-ff参数,阻止快速直接合并,并且构造一个合并的commit,可以与原项目进行differ比较
    5. git push (remote name) [branch] - 将本地目录的当前分支提交到远程仓库某分支
    6. git push (remote name) :[branch] - 删除远程分支,命令行 : $ git push origin --delete (BranchName)>
    Git创建仓库
    1. git init - 将某个文件目录初始化未一个Git仓库,会生成一个.git目录,包含资源的元数据,其他项目目录保持不变,SVN则会在每个子目录生成.svn目录
    2. git clone - 将Git远程资源拷贝到目录
    Git基本操作
    1. git init or git clone
    2. git config
    3. git status - 查看项目的当前状态
    4. git diff (file name) - 显示 已写入暂存 与 已修改但未写入暂存的区别
    5. git add (file name) - 将文件添加到暂存
    6. git reset HEAD (file name) - 取消已暂存的内容,HEAD可省略
    7. git commit -m "[my commit]" - 将暂存区的内容添加到版本仓库中,-m则无需新开编辑器以填写提交信息
    Git分支管理
    使用分支可以从主线上分离开来,不影响主线的同时继续工作
    1. git branch (branch name) - 创建分支
    2. git checkout (branchn name) - 切换到分支
    3. git checkout -b (branch name) - 创建并切换到分支
    4. git branch - 显示分支
    5. git branch -d/-D (branch name) - 删除分支
    6. git push origin --delete (branch name) - 删除远程分支
    7. git merge (branch name) - 合并本地分支,(branch name)可以是master等任意分支
    8. git add (file name) - 如果有冲突,解决冲突后使用add命令告知已解决
    Git查看提交历史
    1. git log - 查看详细历史
    2. git reflog - 查看索引历史,会有commit版本
    3. git reset --hard Head^ - 彻底恢复到之前的版本,本地的内容会恢复, ** *慎用* ** !
    4. git reset (reflog no) 或 (filename) - 恢复到某个commit版本或某个文件,本地的内容不会变化,** *慎用* ** !
    Git 其他命令
    1. 未提交的内容可先储藏
    git stash - 将未提交的内容暂时储藏
    git stash pop - 将最近的一个储藏恢复
    1. 远程分支已不存在,git branch又可见,想删除
    git remote show origin
    git remote prune origin
    1. 查看两个分支的不同
    git log --left-right Feature_Pontus_UK_Dev...Feature_Pontus_UK_Live_Running
    罗列出的commit,左箭头表示第一个分支有的,右箭头表示第二个分支有的
    1. 重新替换某分支
    git fetch (remote name)
    git fetch (remote branch name)
    git checkout - b (new branch name) (remote name)/(remote branch name)
    git branch -D (old branch name) - 删除分支
    git branch -m (new branch name) (aim branch name)
    git push -f origin (aim branch name)
    举例:
    jony要将自己的master分支替换成remote仓库pontus的master分支
    git fetch pontus master
    git checkout -b Feature_PontusMaster pontus/master
    git branch -D master
    git branch -m Feature_PontusMaster master
    git push -f origin master
  • 相关阅读:
    绝对均匀图生成算法
    告别S! S! H! 秒杀终端工具——FastLogin快捷登录
    使用Atom打造无懈可击的Markdown编辑器
    程序异常分析指南
    javascript opacity兼容性随笔
    javascript event兼容性随笔
    javascript Xml兼容性随笔
    addEventListener、attachEvent、cancelBubble兼容性随笔
    算法--逆波兰表达式(数学逆波兰表达式和交并集逆波兰表达式)
    算法--区间数据计算
  • 原文地址:https://www.cnblogs.com/minily/p/9869677.html
Copyright © 2011-2022 走看看