博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git的简单使用
阅读量:5268 次
发布时间:2019-06-14

本文共 6658 字,大约阅读时间需要 22 分钟。

一. Git与SVN

1.1 SVN

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

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

1.2 Git

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

  

1.3 Git工作流程

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

  注意:

  开发过程中要提交新功能时,一定要遵循先拉取(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/download2.安装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

  

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

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

      

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

  

  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提交至了本地仓库,不然出现冲突时自己写的代码直接会没掉):

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

  可以参考以下链接

2.3 在pycharm中使用git

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

 

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.git9.进入本地项目仓库进行开发,可以查看远程源>: 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://www.cnblogs.com/maoruqiang/p/11197051.html

你可能感兴趣的文章
不同版本的eclipse安装svn时url大全
查看>>
PSP
查看>>
CentOS6.4 编译安装Python 3.3.2 - CRPER木木
查看>>
高效率的幂运算
查看>>
mac电脑批量解压android apk文件图形化工具--apkDecode
查看>>
Android UI 之实现多级列表TreeView
查看>>
Ubuntu 14.04避雷系列:升级python到最新2.x版本
查看>>
小狗电器CEO檀冲:一味的推新要有创新来支持
查看>>
关于scrollLeft的获取在不同浏览器或相同浏览器的不同版本下的获取
查看>>
mk_clock
查看>>
Kafka与.net core(二)zookeeper
查看>>
Linux TTY驱动的一些问题
查看>>
在Linux下使用Android adb
查看>>
java基础77 Http协议及Servlet中的GET、POST提交方式
查看>>
第四届蓝桥杯c/c++B组4
查看>>
phpstorm 7.1 注册码
查看>>
图文详解AO打印(端桥模式)(转)
查看>>
HTML
查看>>
在Silverlight中使用SESSION
查看>>
Welcome to Swift (苹果官方Swift文档初译与注解三十六)---254~260页(第六章-- 闭包)
查看>>