如何从远程git服务器上拉取一个新建的git项目?

如何从远程git服务器上拉取一个新建的git项目?,第1张

创建本地仓库并同步到远程

git是非常强大的版本管理工具。接下来的时间里,我就和大家絮叨絮叨git的入门:如何在本地创建一个git仓库,并把自己的本地代码同步到远程。此教程是在mac上操作的,如果您的系统是Linux,那么操作方法相同;如果您的系统是windows,那么,只需要把git的bash窗口调出来,以后的过程也都与Linux相同。

一、首先,您需要安装git,此步就忽略了,自行安装即可。

二、假设你目前还没有创建一个工作目录,那么,先创建一个目录吧,就叫StudyGit。

三、现在的StudyGit目录还只是一个本地目录,和git没有任何关联,那么,我们怎么样才能把这个目录和git关联起来呢?只需要进入StudyGit目录,运行如下命令:

yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git init

Initialized empty Git repository in /Users/yanyaozhen/Coding/Practice/StudyGit/git/

提示已经说明我们初始化了一个空的本地git仓库。如果你查看StudyGit下的所有文件时,会发现一个git 的隐藏文件,这个文件非常重要,版本的控制就靠它了。

四、接下来我们来看一个基本可以说是用的最频繁的一个命令:

yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git status

五、现在让我们来创建一个文件吧。我们创建一个叫“atxt”的文本文件,并且内容如下

anyaozhen@macbookpro:~/Coding/Practice/StudyGit$ cat atxt

运维师岗位职责(精选26篇)

 在日新月异的现代社会中,岗位职责使用的频率越来越高,岗位职责是指工作者具体工作的内容、所负的责任,及达到上级要求的标准,完成上级交付的任务。大家知道岗位职责的格式吗?下面是我为大家收集的运维师岗位职责,仅供参考,希望能够帮助到大家。

运维师岗位职责 篇1

 1负责仓库电脑系统、打印机、网络、扫描枪、SAP、WMS等平台的维护;RF设备及RF网络维护,备用设备(电脑)维护及管理;确保系统运行的安全、完好,并协调、解决日常工作中出现的异常问题;

 2培训临时员工,以支持运维服务,全程支持促销活动;

 3易耗品(包括但不限于:色带、打印纸)计划及管理;

 4 领导安排的其他临时性工作;

运维师岗位职责 篇2

 1、负责WMS等系统实施相关的内部协调、需求收集、蓝图设计,包括方案及流程设计;

 2、WMS与外围业务系统的集成测试,确保业务数据在系统内衔接通畅,数据无误;

 3、权限管理、系统切换以及上线支持等工作,负责在IT系统方面、以及在实际业务衔接上实现成功上线;

 4、完成系统功能的培训指导工作,监督培训工作的顺利完成及知识转化;

 5、WMS系统接口数据监控,确保财务业务数据准确;

 6、配合业务部门业务流程的优化,及时调整系统接口;

 7、依据收集的业务问题,重新梳理业务流程,并制定系统流程改进方案;

 8、测试系统流程改善后的系统运行情况,确保数据顺畅;

 9、根据系统功能合理提出业务流程优化建议,提升业务的效率;

运维师岗位职责 篇3

 1、熟悉阿里云、腾讯云业务开通和维护(服务器,数据库,均衡负载,RDS,OSS等);

 2、熟悉Windows,Linux(Debian,Centos)配置和维护;

 3、域名申请和备案;

 4、有分布式服务器、数据库部署配置经验;

 5、熟悉或了解PostgreSQL数据库;

 6、负责信息系统使用过程中日常咨询答疑、问题处理及跟进;

 7、配合项目经理完成项目实施及软件运维工作(产品部署、升级、安装调试、系统上线前的验证、项目验收等)

 8、项目管理权限的分配管理,编制及登记。

 9、编制系统操作手册(安装手册、调试手册、使用手册、帮助手册等),培训相关用户使用。

 10、系统资料的定期更新及维护。

运维师岗位职责 篇4

 1、负责库房物资管理,并定期将统计数据发送给负责人审查;

 2、负责终端安全管控及PC终端软硬件的维护;

 3、负责网络维护,解决内网不通或地址冲突等相关问题;

 4、负责服务器运维以及各个系统浏览器登录兼容性的调试;

 5、负责机房日常巡检工作;

运维师岗位职责 篇5

 1、负责设计与研发自动化运维平台,运维平台保障;

 2、负责维护生产环境和测试环境;

 3、研发基础服务组件,解决共性需求,减少重复开发与运维;

 4、协助运维完成线上应急任务;

 5、使用自动化运维工具优化测试与部署流程。

运维师岗位职责 篇6

 1、负责智慧城市平台领域的需求分析、产品与架构设计,编写核心代码;

 2、负责系统的安全性,高可用性,性能优化以及开放扩展性;

 3、制订和review产品领域的`技术规范,指导和培训开发工程师;

 4、负责项目进度把控,线上故障的及时排错及处理;

 5、研究新的web、云计算、大数据平台和技术;

 6、参与技术研发团队管理工作;

运维师岗位职责 篇7

 1、负责24小时监控业务及系统运行状态;

 2、定期检查网络硬件及底层系统的运行情况;

 3、及时响应、诊断、定位、处理系统常见故障;协调问题解决;

 4、及时反馈故障情况和处理结果;

 5、收集记录系统运行异常现象及处理方案,认真填写工作日志。

运维师岗位职责 篇8

 1、负责公司海外游戏运营平台基础应用架构设计、部署、性能调优以及维护。

 2、负责公司大数据平台应用环境的架构设计、部署、性能调优以及维护。

 3、协助开发部进行平台代码配置管理的规划、流程和策略的制定,严格执行代码的版本管理、发布管理、变更管理和配置审计。

 4、负责公司企业邮箱系统的日常运维管理

运维师岗位职责 篇9

 1、协助完成部门的文档编制工作,能独立完成系统的数据统计工作;

 2、协助处理公司、分公司、各园区等网络日常维护、故障排除等工作,保证网络运行通畅、稳定;

 3、协助处理办公设备、网络及相关设备、电话系统、计算机软硬件的管理维护、故障诊断与排除,在需要时可以进行基本的维修,负责病毒的查杀,维护网络系统安全;

 4、负责公司会议、培训、活动等支持工作,对各部门提供IT技术支持,并积极主动配合各部门快速解决相关问题;

 5、完成领导交办的其他事项。

运维师岗位职责 篇10

 1、负责海内外运营业务平台的环境部署及维护,确保平台稳定的运行;

 2、协助运维主管完成,运维相关系统的部署;

 4、独立编写Linux运维脚本工具;

 5、Linux操作系统性能优化,数据库备份和恢复;

 6、对服务器和服务的运行状况监控,及时发现问题,并处理问题;

 7、日常运维文档编写,如编写系统运维手册、部署文档、性能参数说明等。

运维师岗位职责 篇11

 1、参与项目需求的调研、讨论,提出优化建议;

 2、负责对接项目方开展项目的研发、实施,确保项目按时保质完成;

 3、负责对内开展系统相关的培训工作;

 4、及时响应并处理系统故障,保障系统的稳定运行;

 5、负责公司的桌面运维工作;

 6、完成领导交办的其他工作。

运维师岗位职责 篇12

 1、系统运维、服务监控分析、故障排查,以及紧急情况下的应急处理;

 2、遵循发布、变更流程,负责系统建设和运维工作,保证其高效、稳定工作;

 3、研究服务架构,发现潜在问题,制定系统调整和优化方案,提高系统的健壮性和效率;

 4、参与系统架构设计,建设和管理;

 5、参与公司基础网络安全架构的建设,根据业务需求制定安全解决方案;

 6、解决日常安全问题,在出现网络攻击或安全事件时进行紧急响应、恢复系统及调查取证。

运维师岗位职责 篇13

 1、负责设计运维平台、开发,提升运维质量及效率,实现系统的自动化管理;

 2、负责监控告警系统的设计和开发,做到监控可视化、故障自动化;

 3、评估系统性能和运行状态,建立量化指标,用数据指导优化;

 4、技术文档的整理和编写。

运维师岗位职责 篇14

 1、负责公司硬件设备、网络的日常管理维护,包括PC、打印机、网络设备、服务器设备等;

 2、负责生产环境以及测试环境的应用部署、日常维护、数据备份、安全加固和性能优化;

 3、负责监控所有服务器的日常运行状态,及时发现并解决故障;

 4、负责公司支撑系统的日常变更操作及变更管理。

运维师岗位职责 篇15

 1参与软件项目的需求评审,关注项目需求的合理性,可测性;

 2全程参与项目生命周期,保证产品质量;

 3负责编写测试流程中各环节相关文档,如制定测试计划、设计测试用例,测试执行,记录缺陷,并跟踪整个缺陷的生命周期,编写测试报告;

 4开发自动化测试脚本,开发性能测试脚本;

 5配合解决测试过程中的问题,协助研发工程师重现、分析、定位、修复bug;

 6积极思考如何通过技术手段提高测试效率,对项目流程的规范建设提有自己的见解;

运维师岗位职责 篇16

 1、负责公司idc机房,企业内部网络以及设备的日常维护,优化和监控;

 2、负责集团和分公司之间网络架构的规划、设计、调整、性能优化;

 3、熟悉cisco/juniper网络环境的安装、管理、配置、排错,提供网络设备维护方案;

 4、熟悉计算机网络和网络安全的调试,网络质量及网络设备的监控,生成网络质量报表;

 5、建立完整的网络系统文档,负责及时处理相关网络故障;

 6、与开发团队密切沟通,设计并实施高并发高可靠性网络拓扑方案

运维师岗位职责 篇17

 1业务平台的日常管理和维护。

 2服务器的配置、维护、监控、调优,相关故障、疑难问题排查处理。

 3应用系统性能优化。

 4保障服务器与业务平台安全,检查并消除安全漏洞。

 5设计业务平台和服务器可靠性保障方案、升级方案。

运维师岗位职责 篇18

 1、负责已验收项目的运维工作(系统安装部署、使用问题咨询、升级维护等);

 2、负责已验收项目的问题及需求梳理,收集客户反馈的问题和新需求,整理成文档;

 3、负责已验收项目的系统维护,包括系统常见问题的处理,确保系统正常运行等;

 4、负责已验收项目的软件开发及优化,包括软件使用过程中出现的问题定位、分析、解决,负责软件Bug修复和新需求功能开发;

 5、负责已验收项目的软件相关文档编写及汇报相关工作。

 6、完成部门领导安排的其他日常事务。

运维师岗位职责 篇19

 1、部署环境实施规划

 2、K8S部署安装

 3、GitLab,Nginx,Jenkins,Redis,Mysql,Harbor软件安装部署

 4、Spring cloud微服务部署

 5、远程访问软件安装

 6、服务器linux系统安装,KVM虚拟化

 7、大数据集群机器容量(CPU,内存,硬盘)以及组件规划

 8、售后技术支持

 9熟悉主流服务器调测配置

运维师岗位职责 篇20

 1、自媒体推广:根据公司年度品推、商推活动,进行全国活动资讯、卖点播报,并开发系列配套活动,提升终端销售激情;针对公司大型推广活动利用终端用户群进行传播推广。

 2、业绩管理:根据年度节假日,打造区域与区域业绩pk、区域内分公司与分公司业绩pk、分公司内店铺与店铺业绩pk活动;针对全国终端,开发店铺四项kpi相关pk活动。

 3、零售标准输出:根据公司最新零售标准,进行标准输出、终端理论知识检核与陈列现场检核等相应工作。

 4、新员工学习路径图规划:针对公司入职新员工,结合店长权限进行课程研发、学习路径与成长路径规划等相关工作。

 5、零售知识库建立:根据公司现有零售课程,进行视频课程研发与制作,方便终端用户碎片化学习;针对公司老员工,定期推送知识库考核,检核员工掌握情况。开发行业动态、时尚资讯、销售技巧等相关课程进行推送并定例检核。

 6、员工生态圈打造:以趣味活动、时事话题、金币兑换、生日祝福等系列暖心活动,提升员工活跃度;以造星运动、日常互动等形式提升员工品牌归属感。

运维师岗位职责 篇21

 1、按照项目总监要求,开展日常的运维监管实施工作;

 2、按时完成各类监管通报的编制;

 3、定期编制运维监理服务工作报告。

运维师岗位职责 篇22

 1虚拟化、网络存储、服务器、数据中心、大数据、相关产品的项目交付或支撑项目迁移上云;

 2与客户有效沟通技术方案、项目计划和进度等,获得客户支持和认可;

 3正确理解、有效分析和管理客户需求;

 4初步掌握项目管理基本方法和工具,并运用到工作中,具备项目技术管理成功实践;

运维师岗位职责 篇23

 1、熟悉云技术架构,OpenStack,docker技术等

 2、熟悉Unix,linux,windows操作系统,虚拟化平台运维,熟悉脚本开发语言,

 3、熟悉IaaS层云计算与虚拟化概念、有云主机、云存储相关实施经验

 4、熟悉主流云计算产品,对相关云产品有运维经验优先

运维师岗位职责 篇24

 1了解市场及用户需求,负责公司云产品规划、方案设计、运营及资源管理;

 2负责面向研发中心的云产品需求对接,提供云产品开发方向设计。

 3负责面向云服务商的技术交流,优化提升公司云产品、保障公司云产品的正常运营;

 4解决用户在使用公司云产品及其应用过程中的各种问题并做好记录;

 5负责运营数据的统计与分析,并定期提交分析报告。

运维师岗位职责 篇25

 1、全面负责省、市、县政府的开拓及维护工作,具备制定合作策略及政府方向谈判能力;

 2、根据公司项目开发情况,统筹项目管理工作,制订项目的推进策略,以及系统的项目政策、计划方案;

 3、负责有关的业务会议以及重大项目谈判并签订项目合同;

 4、负责项目计划的落实、分解并制定阶段性项目计划,组织、指导团队成员各项项目工作;

 5、定期与重要客户沟通,发展与重要客户的良好关系,完成公司销售目标;

 6、政府职能部门的关系维护;公司内、外部关系维护;

 7、完成直属领导、公司安排的其他工作

运维师岗位职责 篇26

 1、负责进行运维平台规划设计和开发工作;

 2、进行运维相关的新技术研究,运维工作规范的制定;

 3、参与运维团队建设工作。

;

你使用的是什么发行版?是centos么?如果是的话就跟随以下我的方法来设置吧。

samba这款软件应用确实非常广泛,同时也为linux和windows之间文件传输提供了一个非常轻松的方式,同时它的安装方法也是非常简单的,我的方法适用于centos68及其以前的系统。

1首先,看看系统里面有没有装samba,这是最关键的一步,不然接下来可能会出问题。默认情况下,centos系统在默认安装中应该已经安装了Samba服务包的一部分 。

rpm -qa | grep samba   //默认情况下可以查询到两个已经存在的包:

samba-client-3033-37el5

samba-common-3033-37el5

2上网找找samba主rpm包。

不过我这里先前就已经找过一个包,在服务器上执行wget下载就好了。

[root@chunming-pc`]# wget ftp://195220108108/linux/fedora-secondary/releases/23/Everything/s390/os/Packages/s/samba-430-01rc4fc23s390rpm

然后下载完成之后使用以下命令安装即可(例如我这里下载的是samba-430-01rc4fc23s390rpm)

[root@chunming-pc`]# rpm -ivh samba-430-01rc4fc23s390rpm

然后安装完成之后就是需要修改配置文件了。

找到/etc/samba/smbconf,打开它,然后把这段写入smbconf中 

[global]

    workgroup = LinuxSir

   netbios name = LinuxSir05

   server string = Linux Samba Server TestServer

   security = share

[linuxsir]

    path = /opt/linuxsir

    writeable = yes

    browseable = yes 

    guest ok = yes

[global]这段是全局配置,是必段写的。其中有如下的几行;

workgroup 就是Windows中显示的工作组;在这里我设置的是LINUXSIR (用大写);

netbios name 就是在Windows中显示出来的计算机名;

server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;

security 这是验证和登录方式,这里用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;

[linuxsir] 这个在Windows中显示出来是共享的目录;

那么path = 可以设置要共享的目录放在哪里;

writeable 是否可写,这里设置为可写;

browseable 是否可以浏览,可以;可以浏览意味着,在工作组下能看到共享文件夹。如果不想显示出来,那就设置为 browseable=no,guest ok 匿名用户以guest身份是登录;

之后就是需要建立相应目录并授权:

[root@chunming-pc ~]# mkdir -p /opt/linuxsir

创建之后,会发现所属用户和组是root,只需要chown 将对应的目录所属改成samba这个软件的用户就可以了。

然后到现在配置就完成了,把服务起来iptables开放端口就可以给外网访问了。

以前因为觉得git、github比较难,所以一直拖着不学,现在去尝试学习,一晚上就OK了

重点之一是找到全面的、详细的、生动的、高质量的教程。廖雪峰的git教程是我目前找到的最好的一个。之前找到的讲解git用法的书《pro git》现在看来是没有必要再看了!

重点之二就是自己立即去学,其实没什么难的,不要被貌似难的表象、概念唬住。

重点之三是最好能自己做简单的、系统的整理,方便自己随时再回来查看、复习、参考,不至于出现这样的情况:学完以后过一段时间之后再用,但是这时候发现忘了差不多了!

重点之四就是立即动手去用,否则学完很快就忘了。

有钱的买mac,没钱的用ubuntu--或者其他的linux发行版、被逼无奈的用Windows--但是被逼之余的自主时间一定要远离Windows。

现在我的测试环境是ubuntu。

以对一个文件的管理为例,简单说明git的使用。另外需要说明的是下面的实验过程主要是只针对一个文件、并且修改的次数往往只有一次,而在真正的项目中,往往有大量的文件,也可能多次修改后才合并,合并时候的冲突可能也不只一两个,等等。不过原理都是一样的,我想说的是,不要局限在这个教程的示例上,请自己通过教程掌握基本的远原理之后,自己推广、去大量的实践,最重要的是要制定一个好的版本控制的策略(合理分工、安排,还是尽可能的避免冲突为好),这个可以参考:使用git和github进行协同开发流程以及我的学习笔记使用git和github管理自己的项目---真实开发环境的策略。

1创建版本库

sudo apt-get install git 先安装git

先创建目录,作为仓库

git init 初始化仓库,可以发现当前目录下多了一个git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了

vim readmetxt 新建一个文本文件,比如往里面添加简单的一行字符串

git add readmetxt 添加一个文件,比如readmetxt,如果目录里面的所有文件都要添加,可以git add

git commit-m "添加一个readmetxt文件" 将文件提交到仓库,并加上说明(这时候是版本1)

如果是第一次使用git,那么git commit可能报错,所以需要你配置一些个人信息

git config --global useremail "you@examplecom" 配置邮件

git config --global username "Your Name" 配置用户名

必须配置,否则后面的commit、push到远程库都会失败

然后再次git commit -m "添加一个readmetxt文件" 才会成功

2提交修改

假如此时第一次修改了readmetxt文件

git status 让我们时刻掌握仓库当前的状态。这时告诉我们,readmetxt被修改过了,但还没有准备提交的修改。

git diff readmetxt 查看对readmetxt做了什么修改

git add readmetxt 提交修改和提交新文件是一样,先git add

git status 可以再用git status查看仓库的当前状态,告诉我们,将要被提交的修改包括readmetxt

git commit-m "第一次修改" 然后再git commit,并添加修改的描述(这时候是版本2)

git status 可以再执行git status看仓库状态,因为所有的都提交了,Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。

3版本回退

你可以像上面所说的那样不停的提交新的文件、提交对文件的修改

这时候第二次修改readmetxt文件

git add readmetxt 先git add

git commit -m "第二次修改" 提交第二次修改(这时候是版本3)

git log 显示从最近到最远的提交日志,具体显示的内容自己试一试看看

git log --pretty=oneline 如果嫌输出信息太多,看得眼花缭乱,试试加上--pretty=oneline参数

看这篇教程去理解为什么Git的版本号要这么长,Git的版本号类似:3628164fb26d48395383f8f31179f24e0882e1e0 这样的特别长的十六进制数。

git reset --hard HEAD^ 会回退到上一个版本,也就是从版本3回退到版本2

在Git中,用HEAD表示当前版本,也就是最新的提交3628164882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

vim readmetxt 可以看到此时的readmetxt文件就是版本2时候的内容,回退成功!

git log 此时看到版本3的信息没有了

git reset --hard 3628164 通过命令行上的历史信息(假如你没清屏的话),找到版本3 的版本号,不一定要全部的版本号,就像这个命令的例子,只要前面的约7、8位这样就可以指定回到版本3

vim readmetxt 看到的是第三版本的readmetxt文件的内容,所以又回来了

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向你要回退的那个版本

git reflog 记录你的每一次命令,最先显示的是这个命令执行之后的版本的版本号的前七位,这样就算你清屏了或者重启了,也能找到某个版本的版本号,就可以轻松回退到那个版本

4工作区、版本库和暂存区

工作区:就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区。

版本库:工作区有一个隐藏目录git,这个不算工作区,而是Git的版本库。

暂存区:Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

详细知识见这篇教程。必须理解暂存区、工作区、版本库。这些都是是Git非常重要的概念,弄明白了这些概念,就弄明白了Git的很多操作到底干了什么。没弄明白的话,请反复看!!

5管理修改

为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。

什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。

通过实例讲解什么叫跟踪修改,要想理解,请参考原文结合暂存区的知识理解:

vim readmetxt 编辑文件,比如添加新的一行

git add readmetxt 添加,但是不提交

vim readmetxt 再编辑文件,比如再添加一行

git commit -m "修改两次,添一次,提交一次" 提交

git status 看到的效果是:只提交了第一次的修改,第二次的修改没有提交

那怎么提交第二次修改呢?你可以继续git add再git commit,也可以别着急提交第一次修改,先git add第二次修改,再git commit,也就是第一次修改 -> git add -> 第二次修改 -> git add -> git commit,就相当于把两次修改合并后一块提交了。

6撤销修改

第一种情况

修改了readmetxt文件,还没有git add 和git commit

但是在你提交之前发现这次修改有问题。既然错误发现得很及时,就可以很容易地纠正它。你可以手动把文件恢复到上一个版本的状态。

git checkout -- readmetxt 也可以通过命令撤销修改,这条命令的意思就是,把readmetxt文件在工作区的修改全部撤销

无论是文件修改后值存在于工作区还没有放到暂存区,还是已经添加到暂存区,总之这个命令就是让这个文件回到最近一次git commit或git add时的状态。

查看文件,内容果然复原了。git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

第二种情况

修改了readmetxt文件,而且执行了git add readmetxt

庆幸的是你在 git commit 之前发现了这个问题

git status 查看一下,修改只是添加到了暂存区,还没有提交

git reset HEAD readmetxt 可以把暂存区的修改撤销掉,重新放回工作区。git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

git status 查看一下,现在暂存区是干净的,工作区有修改

git checkout -- readmetxt 还记得第一种情况中如何丢弃工作区的修改吧

第三种情况

现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?还记得版本回退一节吗?可以回退到上一个版本。不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。

还记得Git是分布式版本控制系统吗?我们后面会讲到远程版本库,一旦你把错误的修改(如果是影响很大的错误)提交推送到远程版本库,你就真的惨了……

区别对待本地版本库和远程版本库!

7删除文件

在Git中,删除也是一个修改操作

添加一个新的文件 testtxt

git add testtxt

git commit testtxt -m "再次新增一个文件"

一般情况下,你通常会在文件管理器中把没用的文件删除,或者直接rm testtxt

git status 这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了

现在你有两个选择,一是确实从版本库中删除该文件,那就git rm testtxt,然后git commit 文件就从版本库中删除了

另一种情况是删除错了,因为版本库里还有,所以可以轻松地将误删除的文件恢复到最新版本git checkout -- testtxt git checkout其实使用版本库中的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

8添加远程库

要想学习这部分的知识,请先参考下面的:a配置连接远程仓库Github。

假如现在你已经配置好github,并且在github上添加了learngit仓库。

git remote add origin git软件开发公司wwwxiupin365net软件开发公司githubcom:michaelliao/learngitgit 这个命令是在本地的learngit仓库下执行的,前面通过learngit仓库为例我们已经讲过在本地创建和操作git仓库。这两个地方的仓库名不需要相同,因为会通过在本地的仓库目录下执行这条命令(命令中包含远程库的名字)已经将两者建立了联系

请千万注意,把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

git push -u origin master 把本地库的所有内容推送到远程库上。把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

然后去Github对应的远程库看看,都已经推送上去了。

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

这样你就可以在Github上托管你的项目代码、vim的配置文件和插件、重要的文档……

现在我的vim的配置文件和插件已经同步到Github上了:https://githubcom/xumenger/m

另外推荐我的关于vim配置的文章::http://segmentfaultcom/a/119

9从远程库克隆

假设我的github上面有一个远程库,但是本地没有,需要克隆到本地,远程库的名字叫'gitskills'

git clone git@githubcom:michaelliao/gitskillsgit 克隆一个本地库

cd gitskills 进入克隆下来的本地库,默认的名字是和github上的一样的

ls -al 可以看到本地的克隆库里面是和远程库里面的一样的

如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。

你也许还注意到,GitHub给出的地址不止一个,还可以用https://githubcom/michaellia这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

10分支管理

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用。

但Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。

11创建和合并分支

首先教程中会详细讲解分支的原理(分支、指针、工作区……),一定要好好看!!看完之后你才能对你的创建分支和合并分支的操作不只是会用,更能在用的时候没有任何疑惑!反正能学到更多的知识,何乐而不为!

另外推荐这样的博客:使用git和github进行协同开发流程以及我的学习笔记使用git和github管理自己的项目---真实开发环境的策略。

在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,我们练习的learngit,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。

实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。

完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。

在继续阅读后续内容前,请自行注册GitHub账号。由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

创建SSH Key。在用户目录下,看看有没有ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsapub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key,输入命令ssh-keygen -t rsa -C "youremail@examplecom",你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。如果一切顺利的话,可以在用户主目录里找到ssh目录,里面有id_rsa和id_rsapub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsapub是公钥,可以放心地告诉任何人。

登陆GitHub,打开“Account settings”,“SSH Keys”页面然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsapub文件的内容:

点“Add Key”,你就应该看到已经添加的Key:

注意现在的Github的页面的布局可能和中显示有细小的差别,不过相信你能找到对应的操作!

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。

如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。具体可以见教程。

首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:

在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何从远程git服务器上拉取一个新建的git项目?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情