zoukankan      html  css  js  c++  java
  • GitHub 基本操作流程

    GitHub是最先进的分布式版本控制工具,下面是我学习中总结的操作流程,仅供参考

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Git安装

                       下载git的windows版本并安装,不予详述(直接打开安装包,按默认的流程一步步进行即可,任意位置点击鼠标右键弹出git 字样的选项时即为安装成功)

                       安装成功后输入下面命令进行设置

                                $ git config --global user.name "你的git账号"

    $ git config --global user.email "你注册git账号的邮箱"

    Git操作:

                        创建版本库

    1. 选择一个地方创建空目录(所有目录名必须是英文的,中文的会出bug)
    2. 输入下列命令

    $ mkdir learngit //learngit为仓库名,可以自己命名

    $ cd learngit

    $ pwd      //显示当前目录

                                $ git init  //将目录变为git管理的仓库

    1. 添加文件,在learngit文件夹下创建文件,输入下列命令

    $ git add 文件名      //文件名是创建文件的名字

    $ git commit -m "注释"//-m后面提交的是文档说明,这个必须要有,否则报错

                       修改版本库:

    1. 查看仓库状态:

    $ git status

    1. 查看修改内容:

    $ git diff 文件名

    1. 查看历次版本历史纪录

    $ git log

    1. 回退上次版本

    $ git reset --hard HEAD^

    1. 回退到任意一个版本

    $ git reset --hard num //num 为要回退到某个版本的版本号,部分即可

    1. 查询历史命令

    $ git reflog

    1. 查询工作区和版本库里面的最新版本的区别

    $ git diff HEAD -- 文件名 //要查询文件的名字

    1. 放弃工作区文件的修改(此命令中的两个横杠很重要,不能少写)

    $ git checkout -- 文件名 //放弃修改的文件名称

    1. 撤销暂存区文件的修改

    $ git reset HEAD 文件名

    Git工作时候实际上是工作区->暂存区(stage)->分支(master为git自动创建的分支),HEAD为指向master的一个指针。Git add实际上是将文件提交到了暂存区。Git commit是将暂存区的所有内容都提交到分支,可以先执行多个add,再使用一个commit提交。

                       如果直接将文件管理器中的文件删除或者使用rm命令删除,工作区和版本库的内容就会不一致,此时:

    1. 可以选择直接从版本库中删除文件

    $ git rm 文件名

    $ git commit

    1. 文件删除错误,这时可以从版本库里还原文件

    $ git checkout -- 文件名

    连接git网站:

    1. 创建SSH Key,在user目录下(用户主目录),查看是否有.SSH文件,并且查看其下面有无id_rsa(私钥,不能告诉别人)和id_rsa.pub(公钥,可以告诉别人)文件,如果没有可以运行命令创建

    $ ssh-keygen -t rsa -C "邮箱名"

    1. 登陆GitHub网站,打开“SSH Key”页面,点击“new SSH”,输入任意名,粘贴公钥内容

    有本地库后创建远程库:

    1. 登陆网站,点击“create a new repository”,创建新库,设置名称learngit,点击创建
    2. 将本地内容关联到远程库里面去

    $ git remote add origin git@github.com:账户名/learngit.git

    1. 把本地库的内容推送到远程库上,

    $ git push -u origin master

    第一次推送时使用-u参数关联,后面推送时候就可以简化命令$ git push origin master

    从远程库克隆库

    1. 登陆网站,假设已经创建了一个库gitskill
    2. 克隆库到本地

    $ git clone git@github.com:账户名gitskill.git

    $cd gitskill       //创建本地文件夹

    $ls

    创建与删除分支:

    1. 创建另一个分支dev,并将指针HEAD切换到另一个分支上去

    $git checkout -b dev  //dev为另一个分支名,记住中间是一个横杠

    -b表示创建并切换

    1. 查看所有分支

                                $ git brach

    1. 切换分支

    $ git checkout master//切换回master分支

    1. 合并分支

    $ git merge dev  //将dev分支合并到当前分支上来

    1. 删除分支

    $ git branch -d dev  //删除dev分支

    分支冲突:

                       当创建一个新分支并且做出修改后回到原分支再次修改文件,此时git无法将两个修改的文件进行快速合并,必须将某一个文件修改后或使其完全一致方可。查看分支合并情况:

                                $ git log --graph --pretty=oneline --abbrev-commit  //查看冲突分支的合并情况

    No-ff模式(禁用fast forward模式)

                                Fast forward模式下合并分支会丢失分支信息,禁止后在执行合并分支操作时能从分支历史上看到分支信息。 禁用模式下执行合并命令:

                                $ git merge  --no-ff -m "注释"

    储存工作状态:

                       在处理bug等必须暂时离开时,可以保存现在的工作状态

    1. 储存当前工作状态:

    $ git stash   //存储当前分支

    1. 修复bug(假如在master中修复bug)

    $ git checkout master    // 转到master分支

    $ git checkout –b issue-101   //创建新的分支issue-101来修复bug

    1. 修复完成后:

    $ git checkout master   //切换回master

    $ git merge –no-ff –m “注释” issue-101 //修改完bug的分支合并到master中去,并保留痕迹

    $ git branch –d issue-101   //删除临时分支

                                4.切换回原来的工作状态

                                         $ git checkout dev

    此时工作区是没有东西的,原来的stash内容被存在别的地方,可以用$ git stash list来查看。此时工作现场还在,此时可以执行:

           $ git stash apply   // 恢复存储内容

           $ git stash drop    // 删除储存的工作状态文件

    或者一次恢复并删除工作状态文件:

           $git stash pop

    删除分支:

    当分支创建完毕即将合并时,突然不使用这个分支了,要将其删除。此时使用强行删除命令(此时没有合并,不能使用git branch来删除分支):

                                $ git branch –D feature   //feature 是要删除的分支名字

    多人协作:

    1. 查看远程库的信息

    $ git remote    

    或者使用命令

    $ git remove –v    //查看远程库更详细的内容

    1. 推送分支到公共库

    $ git push origin 分支名   // origin是远程库的默认名称

    注意:

    l  Master 是主分支,需要时刻与远程库同步

    l  Dev为开发分支,也需要同步

    l  Bug 分支只用于本地修复bug,没必要推送

    l  Feature 是新功能开发分支,这个取决于是否与他人合作开发

    1. 抓取分支,当开发者同时更新dev分支时,可以先抓取这个分支到本地,解决冲突后再上传

    $ git branch –set-upstream dev origin/dev  //指定本地和远程库dev文件的链接

    $ git pull                  //抓取网上的dev文件

    创建标签:

                                为每一个分支创建一个版本号:

                                                   $ git branch    //查看分支

                                                   $ git checkout master   //转到需要加版本号的标签

                                                   $ git tag v1.0    //为分支创建版本号标签,v1.0为版本号

                                                   $ git tag      //查看所有版本号标签

                                                   $ git show tag    //查看所有版本号标签的详细信息

    创建带有说明的标签:

                       $ git tag –a 版本号  -m “说明文字“

    看版本号的说明文字

                       $ git show 版本号 

    操作标签:

              删除标签:

                                         $ git tag –d 版本号

             推送标签到远程:

                                         $ git push origin 版本号

             推送所有标签名到远程:

                                         $ git push origin –tags

             如果标签已经推送到远程,可以先删除本地的,再 删除远程的

                                         $ git tag –d 版本号  //  删除本地的

                                         $ git push origin :refs/tags/版本号

  • 相关阅读:
    英语语法最终珍藏版笔记-16定语从句
    U3D-页游-检测机制-webplayer-调试方法
    Unity UGUI 的RectTransform参数的设置
    游戏贴图的基本知识
    游戏贴图与模型基本规范
    【游戏模型】游戏超写实贴图制作技巧
    灯光下角度不同会出现中间的片没有光照
    Unity3d中SendMessage 用法
    C# Hashtable赋值给另一个Hashtable时
    InvalidOperationException: out of sync
  • 原文地址:https://www.cnblogs.com/3Lweb/p/5339330.html
Copyright © 2011-2022 走看看