git与github的使用操作

一、git

1、 git 是代码协同管理工具

 代码管理工具:

     *防止代码丢失,做备份。

     *代码版本的管理,可以进行多个节点的备份,在多个版本之间跳跃

     *可以方便的将代码在多人之间进行共享传输

     *多人开发时有各种模式可以方便代码管理

什么是git?

     git 是一个开源的分布式版本控制系统,可用于高效的管理大小项目

分布式和集中式

       分布式:每个节点都保存完整的代码,没有明确的中央服务器,节点之间项目推送

               下载代码完成代码共享

       集中式:代码集中管理,每次完成的代码上传到中央管理器,然后统一从中央管理器下
              载代码使用  

git 特点:

       *git可以管理各种文件,特别是代码项目,多在*nix系统中使用

       *是分布式管理,不同于集中式,这是git和svn的核心区别

        *git可以更好的支持分支,方便人协同共作

        *git分布式代码更安全,有全球唯一的commit版本号

        *git是开源的系统

        *使用git可以脱网工作,且数据传输速度较快

git安装

       linux:  sudo  apt-get  install  git

       windows: msysgit.github.io

git配置命令

       git  config

       配置级别:

         1、系统中所有的用户都可使用该配置

               命令:git config  --system

               配置文件:/etc/gitconfig

          2、当前用户可使用该配置

                  命令:git  config  --global

                  配置文件:~/.gitconfig

          3、当前项目可使用该配置

                   命令:git config

                   配置文件:project/.git/config           

      配置内容:

           1、配置用户名

                  e.g.  配置用户名为Tedu

                  sudo git config --system user.name Tedu

           2、配置用户邮箱

                e.g 配置邮箱:

                git config --global user.email [email protected]   

          3、配置编译器

                e.g. 配置编译器

                 git config core.editor sublime

          4、查看配置信息:
                  git config --list   

2、git基本命令

  初始化仓库

          git  init  

         * 在某个目录下初始化仓库后会自动产生.git目录。该目录下工作的所有文档即可以

           使用git进行管理

  查看分支状态

         git  status

        *默认的工作分支为master,可通过创建新的分支切换

  文件的提交

          git  add  [file]

           *将文件提交到暂存区

           *提交内容可以是一个文件,多个文件用空格分开

           *如果是*表示所有文件,也可以是目录

  删除暂存区某个文件提交记录

             git  rm  --cached  文件名

 文件同步到本地仓库

          git commit  -m  "some  message" 

          *同步时需要附加一些同步信息 在-m后添加   

          *所有对工作区的修改如果想同步到文件区本地仓库,add  ----> commit

查看commit日志

        git  log 

        git  log  --pretty=oneline

一些工作区命令

           查看本地文件和工作区差异
           git  diff  file
       
           从本地仓库恢复文件
           git  checkout  file                  

 本地仓库文件的移动和删除
     移动文件:  git  mv  file  dir
     删除文件:git  rm  file
    
    *用法和mv,rm命令相同。操作后直接commit即可工作区和本地仓库同步


版本控制命令         

回到之前版本:git reset  --hard HEAD^

       *HEAD后的^数量决定了回到上几个版本          

      回到指定的版本:git reset --hard  commit_id

      *使用commit前7位即可,回到指定的版本    

去往更新的版本:  

     1、查看所有的历史操作版本:git  reflog 

     2、使用git  reset  去往指定版本

     *git  reflog 会有所有的操作记录,最新的操作时钟在最上边 

3、标签管理

什么是标签:即在当前工作位置添加快照,保存当前工作状态,一般用于版本的迭代    

 创建新的标签:git  tag  v1.0

              *默认是在最新的commit_id 处打标签

 指定某个具体commit_id打标签:git  tag  v1.0  [commit_id] 

 添加标签具体信息: git  tag  v1.0  -m 'message '

 查看标签:git  tag

 查看标签具体信息: git  show  v1.0

 删除标签:git  tag -d  v1.0

 去往某个标签版本:git  reset  --hard  v0.9

4、临时工作区操作

   创建保存临时工作区:git stash

   查看保存的工作区:git  stash  list

   应用哪个工作区:git stash apply stash@{1}

   应用上一个工作区并且删除:git  stash  pop

   删除工作区:git  stash drop stash@{0}   #删除某一个
           
              git stash clear   #删除所有

5、分支操作

      1、什么是分支?

       分支即每个人获取原有代码,在此基础上创建自己的工作环境,单独开发

       不会影响其他分支的操作。开发完成后再统一合并到主线分支中。

      2、创建分支的优点:

            安全,不影响其他人工作,自己控制进度
                           
      3、查看当前分支:git  branch

          前面有* 的分支表示当前正在工作的分支

          创建分支:git  branch  [branch_name]

          切换工作分支:git  checkout  [branch]

          创建并切换到新的分支:git  checkout -b  [branch_name]

          分支合并:

           将某个分支合并到当前分支:

               git  merge  [branch]

                *合并过程中如果没有冲突则直接合并后当前分支即为干净的状态

                *如果产生冲突则需要人为选择然后进行add,commit等操作

                *在创建分支前,尽量保证当前分支是干净点,以减少冲突的发生

           删除分支:

                 git  branch  -d  [branch_name]

                 git branch -D  [branch_name]   强制删除没有合并的分支                         

二、远程仓库

  远程 仓库:远程主机上的仓库。实际上git是分布式的,每一台主机的git结构都

             相似,只是把其他主机上的git 仓库叫做远程而已               

  创建共享仓库:

        1、创建文件夹

           mkdir  gitrepo

        2、设置文件夹属主

            chown tarena:tarena gitrepo

        3、将该文件夹设置为可共享的git仓库

            cd  gitrepo

            git init  --bare  fly.git

         4、设置本地仓库属主

             chown  -R tarena:tarena fly.pit              

  添加远程仓库

           git remote add origin [email protected]:/home/tarena/AID1807/gitrepo/fly/git
          
            *默认使用SSH作为传输手段

            *必须在本地的某个git仓库下执行才能使本地仓库和远程仓库关联
            
   删除远程主机

              git remote rm [origin]

   将本地分支推送到远程

               git push -u origin master

             *在第一次向远程仓库推送时需要加-u选项,以后就不要了

    从远程仓库获取到项目

              git clone [email protected]:/home/tarena/roject/gitrepo/fly.git

    从远程仓库拉取分支或代码

             直接拉取远程分支和当前工作分支合并

              git pull origin dev_Tom

             拉取远程分支到本地,不合并

               git pull origin dev_Tom :dev_Tom

                         远程分支名      本地分支名

     代码退出和拉取

                将本地代码推送到链接的远程仓库:git push

                git push  --force origin(当本地比有远程版本旧时用本地旧版本覆盖远程版本)

   从远程仓库更新代码:git pull (和本地分支合并)

            git  fetch  (如果有新的分支拉取到本地不会和本地分支合并)

三、github

     github  是一个开源项社区网站。拥有全球最多的开源项目。开发者可以注册这个网站

     建立自己的github仓库。然后就可以在本地通过git像操作远程仓库一样操作github仓库

     git是github唯一指定的代码管理工具
  
       网址:https://github.com/

    添加ssh密钥:

         1、在本地主机生成ssh密钥对:

              ssh-keygen

               *默认密钥对存放在~/.ssh/下

               *生成过程会提示设置密码,如果直接回车则表示不设置密码             

        2、进入~/.ssh目录 复制id_rsa.pub公钥内容

   3、操作github仓库:

           1、git remote 连接远程github仓库,如果需要输入密码输入github密码即可

           2、使用git  push  等操作远程仓库的方法操作即可

你可能感兴趣的:(git,github,远程仓库)