Git使用过程

Git-------目前世界上最先进的分布式版本控制系统(没有之一)

什么是版本控制系统?

  说简单点,就是一个文件,对其增加、删除、修改都可以被记录下来,不仅自己可以修改,其他人也可以进行修改

  每次对文件的改动后,包含的记录项类似:

    版本--也就是文件改动的次数  改动的文件依然存在 ,类似文件的副本

     用户--改动文件的人  

    说明---文件被改动的位置

     时间---文件被修改的时间  

安装Git

  Windows系统 git链接:https://git-for-windows.github.io/

  安装很简单,直接下一步------下一步即可完成安装

  安装完成后,在开始菜单-->Git-->git bash打开命令行工具 ,弹出这样的窗口,太棒了,完成安装操作 

  完成安装后,需要在本地生成ssh信息(由于git仓库和github仓库之间的数据传输需要SSH加密):

    进入 git bash:

    1. 输入 ssh-keygen -t rsa -C "邮箱地址"   

    2.进入C:\Users\Administrator\.ssh 目录 打开id_rsa.pub 拷贝其中内容     

    3.进入github后台,SSH and GPG keys-->New SSH key        

     -->title任意-->content:输入拷贝的内容 

    4.进入git bash中输入一下2句话 $ ssh -T git@github.com(输入) The authenticity of host 'github.com (192.30.253.113)'       can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw*. Are you sure       you want to continue connecting (yes/no)? yes(输入)(注意:一定要是输入,不能回车) Warning: Permanently added       'github.com,192.30.253.113' (RSA) to the list of known hosts. Hi arilpan! You've successfully authenticated, but       GitHub does not provide shell access   -------表示已经成功连接上github

    5. 配置全局  用户名:$ git config --global  user.name ' your name'

           邮箱:$ git config --global  user.email   'email' 

        查看:$ git config --get user.name   

           $ git config --get user.email  

创建版本库(repository)

  mkdir   leargit    ----创建一个版本库,也就是一个目录,在这个目录下存放所有的文件,对所有文件的操作都会被git记录下来

  cd   leargit   ----去往leargit这个目录下

  pwd-----查看当前所在目录

初始化git仓库

   $ git init   ----初始化新创建的目录,变成git可以管理的仓库  ,这样git仓库就创建好了

   查看当前目录,会发现leargit目录下,会存在一个.git目录,这个目录是用来管理跟踪版本库的

添加文件到git仓库

  不要使用windowns自带的记事本编辑你的文件,建议使用Notepad++http://notepad-plus-plus.org/,功能强大

  1)添加文件到暂存区--库(注意:这个文件是你已经在工作区中写好的文件,也就是在电脑中,leargit目录下存在的文件)

    首先回到learngit目录下   cd learngit

    添加文件  $  git add readme.txt   (可反复使用)

  2)接着,用git commit命令告诉git,提交文件到库

    $ git commit  -m "write a readme.txt"

    -m:后面的文字是本次提交文件的说明,可以输入任意内容,但最好是有意义的

  注意:commit可以一次提交多个文件,所以add一次可以添加多个文件  eg:$  git add 1.txt 2.txt...$ git commit -m "add two files"

工作区和暂存区的理解:

  1.工作区:电脑中看到的目录,比如leargit下的文件(除开.git目录),或者以后将要创建的文件;

  2.暂存区: leargit目录下有一个隐藏目录.git,他不属于工作区,而是一个版本库,其存储了很多东西,其中最重要的就是stage--暂存区,

    它还为我们创建了一个master分支,以及执行master的指针HEAD

  之前所说的提交文件到版本库实际上是这两个步骤:

    1.git add :将工作区的文件添加到暂存区中

    2.git commit :将暂存区的所有内容提交给当前分支下

修改文件

  修改文件完后需要进行和提交文件一样的步骤 (1.添加文件 git add 2.提交文件 git commit -m )

常用的命令

  git status----查看仓库当前的状态(文件是否被修改和提交)

  git diff------查看文件中被修改的位置,以及位置上对应的内容

  git log-----查看文件提交的历史记录(从最近到最远的显示日志信息),确定要回到哪一个版本,

    也可以使用 git log --pretty-oneline将信息显示在一行

版本回退    ---版本回退,不需要再次进行文件的添加和提交

  git reset --hard  HEAD     --回到上面的版本

     head---表示当前版本 也就是最新的提交(必须知道才能进行返回)  head^--表示上一个版本    

     head^^----表示上上一个版本  head~n-----返回上n个版本

  cat readme.txt     --------查看文件的内容

版本会退后的前进 

  git reset --hard 版本号(用git reflog命令能够查到)    -----方便回到未来的某个版本   

 

  git reflog---记录每一次的命令,方便用于当你回到某个版本后,再想恢复到现在的版本,就必须找到现在版本的id  即回到未来的某个版本 

 

管理修改

  如果每次修改完成后,不使用add 命令添加到暂存区,就不会被commit提交到git仓库

撤销修改  

  场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout - - filename

  场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,

  分两步,第一步用命令git reset HEAD file就回到了场景1,第二步按场景1操作。

删除文件

  $ git rm 1.txt 

  一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit 

  另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

    $ git checkout -- file

  git checkout ---实际就是用版本库里的版本替换工作区的版本,无论工作区是删除的还是修改的,都可以‘一键还原’

远程仓库  ----操作如上 可以实现远程库

  GitHub允许你添加多个SSH Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,

添加远程库

   要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

    关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

    此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

  如何创建一个远程仓库让本地git仓库与github仓库数据同步?

    1.登陆github  完成如图三部操作

      

 

     2.创建完成后,需要在本地git仓库完成两步操作才能将git仓库中的分支上的所有内容同步到github仓库中

      

     3.完成分支的推送,就可以看见远程库的内容和git仓库的内容完全一致了

      

      往后,只要对本地仓库的内容进行了修改都可以使用 git push origin master 命令,将最新的内容更新到远程库中

克隆远程库

  要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone 远程库的地址 命令完成克隆。

创建和合并分支

      

    也可以直接输入 git checkout -b dev  ----创建并切换分支

    在dev分支上进行文件readme内容的修改,然后进行提交,再切换到master分支,发现两个分支上的内容不一致

     

      

  如何合并分支?

    

  合并完成后,就可以删除dev分支了  使用命令 :git branch -d dev

 

Git基本常用命令如下:

   mkdir:         XX (创建一个空目录 XX指目录名)

   pwd:          显示当前目录的路径。

   git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

   git add XX       把xx文件添加到暂存区去。

   git commit –m “XX”  提交文件 –m 后面的是注释。

   git status        查看仓库状态

   git diff  XX      查看XX文件修改了那些内容

   git log          查看历史记录

   git reset  –hard HEAD^ 或者 git reset  –hard HEAD~ 回退到上一个版本

                        (如果想回退到100个版本,使用git reset –hard HEAD~100 )

   cat XX         查看XX文件内容

   git reflog       查看历史记录的版本号id

   git checkout — XX  把XX文件在工作区的修改全部撤销。

   git rm XX          删除XX文件

   git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

   git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

   git clone https://github.com/tugenhua0707/testgit  从远程库中克隆

   git checkout –b dev  创建dev分支 并切换到dev分支上

   git branch  查看当前所有的分支

   git checkout master 切换回master分支

   git merge dev    在当前的分支上合并dev分支

   git branch –d dev 删除dev分支

   git branch name  创建分支

   git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

   git stash list 查看所有被隐藏的文件列表

   git stash apply 恢复被隐藏的文件,但是内容不删除

   git stash drop 删除文件

   git stash pop 恢复文件的同时 也删除文件

   git remote 查看远程库的信息

   git remote –v 查看远程库的详细信息

   git push origin master  Git会把master分支推送到远程库对应的远程分支上

可供参考的链接:http://blog.jobbole.com/78960/

 

 

 


  
posted @ 2016-08-28 23:02  Queen-英  阅读(982)  评论(0编辑  收藏  举报