Git的简单使用 一. Git与SVN 二. Git的安装及使用

1.1 SVN

  SVN是集中式版本控制系统,版本库是集中放在*服务器的,而干活的时候,用的都是自己的电脑,所以首先要从*服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到*服务器。

Git的简单使用
一. Git与SVN
二. Git的安装及使用

  集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。不顾缺点很明显,如果*服务器发生故障,那么所有人都要等服务器能正常使用时才能提交代码,一定程度上会对项目进度产生影响。

1.2 Git

  Git是分布式版本控制系统,那么它就没有*服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
  下图就是分布式版本控制工具管理方式:

  Git的简单使用
一. Git与SVN
二. Git的安装及使用

1.3 Git工作流程

  1.从远程仓库中克隆 Git 资源作为本地仓库。
  2.从本地仓库中checkout代码然后进行代码修改
  3.在提交前先将代码提交到暂存区。
  4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
  5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。
Git的简单使用
一. Git与SVN
二. Git的安装及使用

  注意:

  开发过程中要提交新功能时,一定要遵循先拉取(pull),再提交(push)
  1)提交新功能(先提交,提交后拉取,可能就会出现冲突)
    >: git add .
    >: git commit -m '提交新功能的信息说明'
  2)拉取远程仓库(不管本地是否已经和远程同步,每一次提交前都必须拉取)
    >: git pull 源名 分支名 => git pull origin master
  3)提交到远程仓库(现在是主分支)
    >:git push 源名 分支名 => git push origin master

二. Git的安装及使用

2.1 Git的安装及使用前准备

  这里未介绍可视化界面(如TortoiseGit)的安装 ,只介绍git的安装及使用,以及在pycharm中如何使用git。

  1. 首先去官网下载对应版本的git:

1.下载对应版本:https://git-scm.com/download
2.安装git:在选取安装路径的下一步选取 Use a TrueType font in all console windows 选项
3. 安装成功后桌面右键可以看到git菜单

   2. 搭建本地git仓库的两种方式

# 将已有的文件夹作为git仓库
>:  cd 目标文件夹内部
>:  git init

# 在指定目录下创建git仓库
>:  cd 目标目录
>:  git init 仓库名

   3. 配置操作git的用户信息

# 局部配置
>: git config user.name '用户名'>: git config user.email '用户邮箱'
    
注:在当前仓库下的config新建用户信息,只能在当前仓库下使用


# 全局配置
>: git config --global user.name '用户名'
>: git config --global user.email '用户邮箱'

注:在全局文件 C:Users用户文件夹.gitconfig新建用户信息,在所有仓库下都可以使用

 2.2 Git常用指令

  1. 查看仓库状态命令

# 当仓库中有文件增加、删除、修改,都可以在仓库状态中查看
>: git status  
    -- 查看仓库状态
>: git status -s  
    -- 查看仓库状态的简约显示

  2. 工作区操作

     通过任何方式完成的文件删与改可以撤销回滚。注意空文件夹时不会被git记录。
  工作区内容提交至暂存区:
"""
>: git add .  
    -- 添加项目中所有文件
>: git add 文件名  
    -- 添加指定文件
"""
  撤销暂存区提交:add的逆操作
"""
>: git reset HEAD .
    -- 撤销所有暂存区的提交
>: git reset 文件名
    -- 撤销某一文件的暂存区提交
"""
  撤销工作区的操作:改、删 (前提是目标文件使用add命令加入了暂存区):
"""
>: git checkout .
    -- 撤销所有暂存区的提交
>: git checkout 文件名
    -- 撤销某一文件的暂存区提交
"""

   提交暂存区内容至版本库(本地仓库):

git commit -m "版本描述信息"
  撤销版本库提交:commit的逆操作
"""
回滚暂存区已经提交到版本库的操作:
    查看历史版本:
        >: git log
        >: git reflog
    查看时间点之前|之后的日志:
        >: git log --after 2018-6-1
        >: git log --before 2018-6-1
        >: git reflog --after 2018-6-1
        >: git reflog --before 2018-6-1
    查看指定开发者日志
        >: git log --author author_name
        >: git reflog --author author_name
    回滚到指定版本:
        回滚到上一个版本:
            >: git reset --hard HEAD^
            >: git reset --hard HEAD~1
        回滚到上三个版本:
            >: git reset --hard HEAD^^^
            >: git reset --hard HEAD~3
        回滚到指定版本号的版本:
            >: git reset --hard 版本号
            >: eg: git reset --hard 35cb292
"""

   3. 过滤文件

  windows中过滤文件时,可以新建.gitignore文件,往里面添加文件的名字或相对路径的方式来实现。不过注意新建.gitignore时要在后面多加一个.

.gitignore.
# .gitignore 文件
# 1)在仓库根目录下创建该文件
# 2)文件与文件夹均可以被过滤
# 3)文件过滤语法

""" 过滤文件内容
文件或文件夹名:代表所有目录下的文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
目录/文件或文件夹名:代表特定目录下的文件或文件夹被过滤
"""

  4. 生成密钥

  使用ssh的方式配置远程源时,需要配置密钥:

# git bash中生成密钥的命令
  ssh-keygen -t rsa

  Git的简单使用
一. Git与SVN
二. Git的安装及使用

  生成之后windows中公钥私钥默认保存在C:Users用户名.ssh下:

Git的简单使用
一. Git与SVN
二. Git的安装及使用

  然后将公钥中的内容复制出来,在远程仓库中配置即可。比如在GitHub中配置如下:

      Git的简单使用
一. Git与SVN
二. Git的安装及使用

   点击New SSH key把自己的公钥复制进去即可,公钥是一台电脑配一次即可。

  Git的简单使用
一. Git与SVN
二. Git的安装及使用

  5. 配置远程源

  远程源目前主要由三种,分别是Github、码云以及Gitlab,他们之间的使用都大同小异。可采用 https协议 或 ssh协议 与远程git仓库通信提交提交代码(一般都是项目负责人完成)

  https协议方式:

>: git remote add origin https://gitee.com/doctor_owen/luffy.git  # 配置远程源

>: git push -u origin master  # 提交本地仓库到远程源

  ssh协议

>: git remote add origin git@gitee.com:doctor_owen/luffy.git  # 配置远程源

>: git push -u origin master  # 提交本地仓库到远程源

  查看源及源链接信息:

>: git remote
>: git remote -v

# 删除源链接
>:  git remote remove 源名字 

    注意:origin远程源的源名,可以自定义;master是分支名,是默认的主分支。

  新建一个远程仓库的时候(比如GitHub),如果新建了README文件,那么本地仓库使用push时,会报错,而且会建议你push前使用pull,可是这时使用git pull origin master后push还是会报错。此时可以使用以下命令将README先同步到本地,然后再正常使用push即可。

git pull --rebase origin master

  6. 多分支操作

-查看分支
    -git branch     #查看本地分支
    -git branch -r  #查看远程分支

-新建分支
    git branch 分支名字   #新建本地分支
    
-同步到远程
    -提交,push:git push origin lqztest
-切换分支
    git checkout lqztest
-合并代码
    -切到主分支:git checkout master
    -git merge lqznew
-删除分支
    #删除本地
    git branch -d 分支名
    #删除远程
    git push origin --delete 分支名
        
-分支合并时冲突的解决
    -跟正常冲突解决一样

  7. 冲突解决

  冲突的存在实际上因为多人修改了同一行代码,当出现冲突时,使用pull下拉代码时会保存你的代码和远程的代码(前提是你工作区中写的代码用add和commit提交至了本地仓库,不然出现冲突时自己写的代码直接会没掉):

Git的简单使用
一. Git与SVN
二. Git的安装及使用

  这个时候出现冲突时与同事协商处理即可,最后将冲突解决之后的代码push至远程仓库。

  可以参考以下链接https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344

2.3 在pycharm中使用git

  1 使用
  安装好pycharm后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。
  选择File→Settings打开设置窗口,找到Version Control下的git选项:
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  选择git的安装目录后可以点击“Test”按钮测试是否正确配置。
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  2 将工程添加至git
1)在pycharm中创建一个工程,例如创建一个python工程,名称为git-test,如下图所示:
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
2)创建本地仓库
  在菜单中选择“vcs”→Import into Version Control→Create Git Repository...
  选择工程所在的上级目录。本例中应该选择idea-projects目录,然后点击“OK”按钮,在工程的上级目录创建本地仓库,那么idea-projects目录就是本地仓库的工作目录,此目录中的工程就可以添加到本地仓库中。也就是可以把idea-git-test工程添加到本地仓库中。
选择之后在工具栏上就多出了git相关工具按钮:
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
2)将工程添加至本地仓库
  直接点击按钮
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  将工程提交至本地仓库
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
然后点击“commit”按钮,将工程添加至本地仓库。 :
Git的简单使用
一. Git与SVN
二. Git的安装及使用
3)推送到远程
  在github上创建一个仓库然后将本地仓库推送到远程。
  在工程上点击右键,选择git→Repository→push,
  或者在菜单中选择vcs→git→push
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  点击“Define remote”链接,配置https形式的URL,git形式的无法通过。然后点击OK
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  点击“push”按钮就讲本地仓库推送到远程,如果是第一次配置推送需要输入github的用户名和密码。
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  打开本地Windows的cmd命令窗口,输入 rundll32.exe keymgr.dll,KRShowKeyMgr 将之前存储的git提交时保留的用户名密码删除
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  3 从远程仓库克隆
  在pycharm的设置中:
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  关闭工程后,在Pycharm的欢迎页上有“Check out from version control”下拉框,选择git
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  此处仍然推荐使用htts形式的url,点击“test”按钮后显示连接成功。
  点击OK按钮后根据提示将远程仓库克隆下来,然后倒入到Pycharm中。
Git的简单使用
一. Git与SVN
二. Git的安装及使用
  4 从服务端拉取代码
  如果需要从服务端同步代码可以使用工具条中的“update”按钮
Git的简单使用
一. Git与SVN
二. Git的安装及使用

 Git的简单使用
一. Git与SVN
二. Git的安装及使用

2.4 Git团队开发流程

"""
管理员
1.管理员配置与线上账号密码系统的本地全局账号密码
>: git config --global user.name "doctor_owen"
>: git config --global user.email "doctor_owen@163.com"

2.本地初始化git仓库(可以建立一个项目架构)
    1)创建项目
    2)进入项目目录初始化仓库:
        >: git init
    3)提交代码到本地版本库
3.创建一个远程空仓库(码云)
4.将本地版本库同步到远程仓库
    1)在本地仓库内添加远程仓库源,源名默认就采用origin,就采用https协议即可
        >: git remote add origin https://gitee.com/doctor_owen/luffy.git
    2)将本地版本库提交到远程版本库,需要远程仓库账号密码
        >: git push -u origin master

开发者
5.要参与开发的成员配置本地全局账号密码
>: git config --global user.name "owen"
>: git config --global user.email "owen@163.com"

6.生成本机的SSH公钥提供给管理员
>: ssh-keygen -t rsa -C "owen@163.com"

管理员
7.添加开发者提供的公钥到 个人公钥 并非是 公钥,并给开发者提供远程仓库SSH地址
    仓库 => 管理 => 添加公钥 => 添加个人公钥
    SSH地址:git@gitee.com:doctor_owen/luffy.git

开发者
8.在本机任意合适位置clone远程仓库到本地
>: git clone git@gitee.com:doctor_owen/luffy.git

9.进入本地项目仓库进行开发,可以查看远程源
>: cd luffy
>: git remote -v
注:origin  git@gitee.com:doctor_owen/luffy.git (fetch) & (push)

10.开发过程中要提交新功能时,一定要遵循先拉取(pull),在提交(push)
    1)提交新功能(先提交,提交后拉取,可能就会出现冲突)
        >: git add .
        >: git commit -m '提交新功能的信息说明'
    2)拉取远程仓库(不管本地是否已经和远程同步,每一次提交前都必须拉取)
        >: git pull 源名 分支名 => git pull origin master
    3)提交到远程仓库(现在是主分支)
        >:git push 源名 分支名 => git push origin master
"""
View Code

  更多知识,比如TortoiseGit可视化工具的使用等见一下链接:

 https://note.youdao.com/ynoteshare1/index.html?id=1477b520800edbdb712d4fbb76ec125e&type=note