花了两天时间专门搞了一下git。整理一下分享给大家。以下我们開始。。

  • 转载请注明出处:
  • http://blog.csdn.net/Hello_Chillax/article/details/47405887
  • 很多其它精彩请訪问:http://blog.csdn.net/hello_chillax,谢谢

一.学习使用git之前的准备(Windows环境下)。

  • 在本地装一个git,并装上GitBash。(不会?会装QQ就会装git。。

    )

  • 去GitHub官网上注冊一个账号。

    给个传送门GitHub官网

二.做好准备之后,咱们先来扫一下盲。讲讲概念。

  • git和GitHub有什么差别?(已泪奔。。。


    答:git是本地代码版本号管理工具,我们写项目时,难免会要进行代码管理吧。比方我们每天写完代码之后,总要把它备份一份吧,原因非常easy。万一你的工作空间(workspace)所在的硬盘突然挂了呢,不要说几率非常小。可是,万一发生呢。


    我们总能感觉到git和GitHub之间好像是有什么关系。上面我们提到,git是本地代码管理工具。为了防止我们的工作空间(workspace)所在的硬盘突然挂掉。可是,你就不操心整块硬盘都挂了吗。。

    当然,这仅仅是个小概率事件。更重要的是:我们在团队开发时,须要多人合作开发同一个软件,不可能我写了代码拷给你,你写了代码拷给我吧。我们须要一个统一的远程版本号控制仓库:GitHub

三.我们開始GitHub之旅。

1.首先解释几个单词的意思(⊙o⊙)…

后面会用到的。并且非常重要的:

  • pull:拉
  • push:推
  • repository:仓库
  • branch:分支
  • status:状态
  • commit:提交
  • config:配置
  • global:全局的(属性,变量等)

2.画一张图来解释git本地操作,以及远程操作的逻辑流程

  • 从上图中能够看出。我们日常编码时。首先是把工作空间里的更改的代码通过操作①来推送到暂存区(index。stage),然后假设我们确认这些代码正确。无须改动。那么就能够把它通过②推送给本地master分支。这里我们能够把master分支理解成本地的暂时仓库,我们能够从这里恢复代码,也能够通过这个分支进行提交到远程GitHub上的master分支,把你的代码提供给别人。

  • 上图我们仅仅是描写叙述了由本地逐步推向远程的过程。我们先将这个高明确,后面我会反过来再操作一遍。

3.我们先实现步骤①

1.假设我们对代码进行了更改。这里我们以一个文件readme.txt为例。来解说。

(也就是说我们如今工作区间假设是E://firstrep。里面有一个文件readme.txt)
2.首先我们打开D://firstrep。在该文件夹下在空白处点击右键打开给Git Bash.exe,初始化一个本地仓库。

Administrator@HJQ1EBGYSWRMA1K /e/firstrep
$ git init
Initialized empty Git repository in E:/firstrep/.git/(master)

注意:仅仅有以“$”开头的才是我们写的命令。其它的都是系统自己主动生成的提示信息,当中运行初始化命令之后我们能够看到路径名后面多了一个“master“,这说明我们初始化成功。

3.我们如今来找一下工作区间,版本号库,暂存区,以及本地master分支

  • 工作空间:E:/firstrep

  • 版本号库:E:/firstrep/.git/(master)注意,这里.git文件夹是隐藏的,不可见,能够更改文件夹属性使其显现出来。

  • 暂存区和master分支:这两个东西都存在版本号库文件夹下

4.我们先对该文件进行更改:

git is very easy.

然后。我们把它提交到版本号库的暂存区里(index,stage),运行例如以下代码,查看git状态

$ git status
On branch master

Initial commit

Untracked files:
(use “git add …” to include in what will be committed)

   readme.txt

nothing added to commit but untracked files present (use “git >add” to track)

这里会提示我们说:在工作空间多了一个文件。我们还没有加入到版本号库

5.以下我们把它加到版本号库里的暂存区。

git add –all

这样,我们第①个环节已经运行结束。

4.以下我们来运行步骤②

1.我们刚刚把更改的readme.txt.加入到暂存区(index。stage),如今我们把再把它加到本地master分支。

$ git commit -m “測试
[master (root-commit) 74c27df] 測试
1 file changed, 1 insertion(+)
create mode 100644 readme.txt

我们如今通过上面一行命令。讲readme.txt提交到本地master分支(事实上这么说不是非常准确,事实上提交的是改动。而不是全部内容。这里我们能够先这么简单地理解)。以下我们来查看一下git的状态

$ git status
On branch master
nothing to commit, working directory clean

OK。至此,我们已经成功完毕了本地代码的提交。

即①②两步。

以下我们进行第三部。

5.运行步骤③

如今应该是远程有一个分支,本地有一个分支,我们在GitHub创建一个仓库(repository)。假设仓库地址为:https://github.com/hellochillax/Yard.git

以下我们进行推送:

1.加入远程仓库的地址:

$ git remote add origin https://github.com/hellochillax/Yard.git

这里就产生了一个相应关系:origin–>https://github.com/hellochillax/Yard.git

2.进行推送操作:

$git push origin master

然后系统会提示你输入GitHub的账号password,输入正确的账号password后。点击回车,系统就会进行提交工作。并且会显示运行进度。当然,我这里就不演示了,以防把我原来的项目覆盖掉了。(上面的GitHub地址是我在GitHub上的一个项目,不可随便推。。。当然你看到这里也别想着去搞破坏,由于你不知道我的GitHub的账号password。

。。)

我们上面全部的内容攻克了本地推送到GitHub。以下我们发过来解说从GitHub上拉取被人写的内容到本地仓库。

6.我们还是先搞一张图,有句话说的好。没图你说个。**

以下。我们还是分三步来讲:

7.运行步骤①

有了上面的经验,我们就能够快一点了~
上命令:

$ git pull origin master

上面的命令是,从远程拉取文件到本地。(相同的。我就不点回车给大家演示了

8.运行步骤②③

在运行之前。我们先查看一下git的状态:

$ git status
On branch master
nothing to commit, working directory clean

呦呦呦,什么情况,怎么是“nothing to commit”呢。怎么回事,不应该是再从版本号库中复制内容到工作空间吗,怎么能是不须要提交呢。

别急。你打开工作文件夹,发现。工作文件夹里已经存在了GitHub上的全部文件。

也就是说,步骤①,事实上已经帮我们搞定了①②③要做的事。所以,②③步骤事实上不要我们做不论什么事情。。

四.git的使用之细节补充

  1. 我们要养成一个好的习惯,每天晚上关电脑之前,记得把自己白天写的代码推送到GitHub上,以防自己的劳动果实丢失。尽管几率非常小,但这不失为一个好习惯。这里要特别提一点,GitHub上的仓库是public的(免费版),也就是说,假设你不想公开你的代码。就别轻易放在GitHub上,或者花钱买个私有的仓库。
  2. git的知识点非常多。使用细节也非常多。我这里仅仅是把两个大流程给说了一遍,事实上git是非常强大的。使用起来还是有非常多须要学的,比方多分支管理,冲突解决,git与eclipse或者intellij结合等。可是相同是遵从二八原理,仅仅有20%的操作是我们经经常使用到的,所以,假设你看到如今感觉难度一般般。那么你还是非常不错的。毕竟我的表达能力不是一般的一般般。。。
  3. 博客写的比較少,内容难免多有不当之处,还望各位批评指正。希望本博客会给你提供一定的帮助,这也是我写博客的目的了。

五.最后贴一下我平时总结的git经常使用操作

  • git init 初始化一个本地仓库

  • git add –all 加入全部文件到暂存区(stage,index)

  • git commit -m “描写叙述信息” 提交更改到本地master分支

  • git status 查看git当前状态

  • git diff 查看改动后和改动前的不同之处

  • git log 获得文件更改的历史记录

  • git reset –hard HEAD^ 回退本地分支到上一个版本号

  • git reset –hard HEAD~n 回退本地分支到上n个版本号

  • git checkout – readme.txt:把readme.txt文件在工作区的改动全部撤销

  • git remote :获得远程库列表

  • git remote -v :获得远程仓库的具体信息
  • git remote rm [name] :删除相应的远程库
  • git remote add origin git@github.com/hellochillax/SoftWareYard.git 关联一个远程库
  • git push -u origin master 第一次推送master分支的全部内容
  • git push origin master 推送最新改动
  • git branch -u origin/master master 本地跟踪远程

    Git鼓舞大量使用分支:

    查看分支:git branch
    创建分支:git branch
    切换分支:git checkout
    创建+切换分支:git checkout -b
    合并某分支到当前分支:git merge
    删除分支:git branch -d

  • ssh-keygen -t rsa -C “hello@example.com” 创建SSH Key

  • git config –global user.name “Your Name” 设置username
  • git config –global user.email “email@example.com” 设置password

命令行通用操作:
pwd:显示当前路径
ls -ah:显示文件列表(包含隐藏文件)
cat readme.txt:显示文件内容
rm readme.txt: 删除文件

==========================我是华丽的分隔符==========================================

时间过得真快,转眼半年多过去了。实验室里的人都在忙着各种内推面试。

我也不例外。总体复习啊。这样的酸爽。

本来能够不用考虑git的。可是内推时手残在简历的个人技能部分写了一句“熟悉git、svn等版本号管理工具。

”所以还是再来复习一下git,并且再补充一点半年前没有提到的知识点。

也算为了面试官问到时能不掉链子了。

git的基本知识和经常使用命令,上次都写得几乎相同了。

这次讲讲git分支的合并。

一. fetch和pull的差别。

这两个命令的功能都是从远程的分支获取最新的版本号到本地。可是有一定的差别。

  • 1.git fetch:相当于是从远程获取最新版本号到本地。不会自己主动merge
  • 2.git pull:相当于是从远程获取最新版本号并merge到本地

我们能够用以下的三个命令来体会二者的差别:

git fetch origin master:tmp
git diff tmp
git merge tmp

在实际使用中,git fetch更安全一些
由于在merge前,我们能够查看更新情况,然后再决定是否合并.

二. merge和rebase的差别。

关于这个问题,在stackoverflow上有个非常清晰明了的解释,感兴趣的能够看一下:http://stackoverflow.com/questions/16666089/whats-the-difference-between-git-merge-and-git-rebase

貌似须要梯子才干看。

没梯子也没关系,我把内容翻译一遍。

首先,假设我们的版本号库眼下有三个提交。A,B,C,如图:

然后,此时有两个开发人员同一时候开发,当中小王开发了D,小李开发了E,如图:

非常显然,眼下已经发生了冲突(合并时出现故障),我们解决这个冲突,有两种方法:merge和rebase。

假设採用merge:

假设採用rebase:

可是。有个小问题:採用rebase时。可能会使虚线部分的提交丢失。所以有一定风险性,建议新手都用merge。

转载于:https://www.cnblogs.com/llguanli/p/8916819.html

Git--团队开发必备神器相关推荐

  1. 开发必备神器,你值得拥有!

    1.ShowMore:一款简洁实用的高清在线录屏工具,支持Windows.mac,只需一个浏览器,即可免费录制电脑屏幕上一切活动.访问ShowMore网站(网站地址),第一次使用时需要安装一个小启动器 ...

  2. Java 开发必备:神器

    导读:Java开发人员经常要和各种各样的工具打交道,除了常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的.本文作者Hollis偏爱使用在线工具,因为这样比较方便.本文就 ...

  3. android crash没有日志_Android开发必备神器CrashCanary

    阅读本文大概需要8分钟 作者:wangsj1992出处:https://www.jianshu.com/p/8676f7a05920 前言 安卓开发中,你是否遇到过如下困扰: 场景一 开发好一个功能后 ...

  4. 不容错过!鸿蒙开发必备神器,老王月薪过万的秘诀都在这了

    大家应该都知道在华为开发者大会HDC.Together 2021主题演讲会上,华为发布了HarmonyOS3.0.0开发者预览版. 预览版本中包含IDE工具DevEco Studio 3.0和DevE ...

  5. 世纪前线网络质量测试工具 是什么_HTTP API测试工具大全,后端开发必备神器。...

    API测试的主要任务是看被开发的应用程序接口,是否符合期望,能否可靠的服务,能否提供API所预定的功能,然后就是测试性能如何,接口的安全性如何. 接下来我们就来看看,目前最流行的测试应用程序接口的工具 ...

  6. GitHub 又一开发必备神器问世,代号「LiteKit」

    目前,越来越多的 AI 场景将 AI 能力直接部署在移动端,其优势主要在于实时.省流.以及安全性等方面.这些 AI 能力给移动端产品带来巨大的想象空间,促进了移动互联网下半场的繁荣. 在移动端智能化的 ...

  7. 介绍一个前端页面开发必备神器,chrome扩展,设备模拟器

    有了这个扩展,我们无需手动打开Chrome开发者工具去模拟设备了: 在Chrome web store里搜索关键字设备模拟器: 安装之后,点击Chrome工具栏里的黄色图标打开User-Agent的下 ...

  8. 几个实用的IDEA插件 Java开发辅助神器!

    微信公众号:Java随笔录 关注可了解更多Java相关的技术分享.问题或建议,欢迎公众号留言! 如果你觉得JiangNanMax对你有帮助,欢迎赞赏! 文章目录 JRebel for IntelliJ ...

  9. git 思考 -- 个人开发者与团队开发有何不同

    团队开发的注意点 一. 融入项目为什么和个人编程不一样 1. 大型项目需要注意哪些问题 2. 如何与团队进行合作 3. 解决大型项目的问题 4. 流程化开发管理 5. 如何与团队进行合作 6.git ...

最新文章

  1. winserver2008 Oracle 11g 安装
  2. Castle IOC容器实践之EnterpriseLibrary Configuration Facility
  3. vue-cli中配置sass
  4. 在 Mac 安装Docker
  5. Rethink Technology预测看好VVC
  6. 机器学习实战(五)——Logistic 回归
  7. 前端学习(2465):ajax发送请求
  8. linux的内置的账户_6 款面向 Linux 用户的开源绘图应用程序
  9. Bootstrap3 模态对话框的方法
  10. 20191206每日一句
  11. 芯片代理商哪家专业 品质是否有保障
  12. ssm电子族谱信息管理系统的设计与实现毕业设计-附源码161714
  13. Android4.0 ext disk auto mount [including sd mmc sata udisk]
  14. GitLab安装使用(SSH+Docker两种方式)
  15. 免疫荧光实验相关的注意事项汇总
  16. 西门子PLC和变频器控制恒压供水案例一控四
  17. android 查看系统数据库
  18. 计算机专业男生礼物排行榜,男人内心最想收到的礼物,得票数最多的居然是这十个...
  19. EDA——计算机软件系统
  20. 【无标题】keil5打开报错

热门文章

  1. Excel 技巧篇-公式实现在指定范围内生成指定小数位的随机数
  2. 万向锁的简单数学解释
  3. OpenCV中图像窗口的鼠标事件
  4. zhcon解决Ubuntu命令行模式乱码问题
  5. Python中数字以及算数运算符的相关使用
  6. android api在线文档_通过 API 远程管理 Jenkins
  7. Knn算法(约会问题应用)
  8. JavaScript装饰器模式
  9. 怎样把做好的css样式改日期,Win8操作系统任务栏中日期样式怎么更改
  10. codevs 3164 质因数分解