【学习笔记】Linux_Git版本控制,新增/删除/移动/提交/下载

【发展历史】

1.单机版:RCS(1982)、SCCS(1972)

2.客户端-服务器端:CVS(1986)、SubversionSVN(2000)

工作流程:本地提交代码,送到远程服务器存储。

SVN缺点:

①分支和合并困难,分支是用copy策略,100兆的代码建立10个分支,就是一个G代码库占用。

②必须服务器支持,比如大家开发好了代码,突然网络异常或者SVN服务器挂了,就只能干等着。

3.分布式(多个服务器端):Git(2005)

【安装】

一、linux:

①安装命令:sudo apt-get install git、yum install git(虚拟机安装命令);

②安装成功后的检查git status、git --version;

③cat ~/.gitconfig(查看全局配置文件,可以通过vim ~/.gitconfig修改。)

④上传流程:1-4-1,1到4是上传步骤;4-1是下载步骤。

1.本地代码:通过,git add/rm/mv readme.txt(文件名),命令,从本地代码添加、删除、移动到待提交列表。

2.待提交列表:通过,git commit -m '本次提交的数据说明',从待提交列表提交到本地仓库。(优点)

3.本地仓库:通过,git push origin(配置文件中的别名) master(分支名称),从本地仓库提交到远程仓库。

4.远程仓库:通过,git clone https://github.com/*******/linux-git.git(git download地址),从远程仓库下载到本地仓库。

3.本地仓库:通过,git reset --soft(软回滚,回到上一层库) HEAD~1(代表最近一次提交的数据),从本地仓库的把文件下载到待提交列表(有--soft)或者本地代码(无--soft)。

2.待提交列表:通过,git checkout -- readme(文件名),从待提交列表撤销/回归/或者下载到本地代码。

1.本地代码:通过vim readme.txt,可新建/修改/编辑本地代码文件。

【学习笔记】Linux_Git版本控制,新增/删除/移动/提交/下载

⑤创建本地仓库命令:mkdir gitfile-touch readme.txt-cd(进入)readme目录-git init (创建本地库).

提交代码流程:git status检查当前状态-git add readme(上传readme文件到待提交列表)-git status检查最新状态-vim readme编辑文件内容-:wq保存退出-git add readme-git commit -m '增加readme的内容'-git log检查日志(新增1次上传日志)

【常用命令】

必须先创建本地库(上面⑤的操作),才可以使用以下命令。

1.git status(当前文件状态)、ls -altrh(当前目录所有下文件大小)

2.get add readme.txt(本地代码提交到待提交列表)、rm log.txt(删除本地文件)、git checkout(撤销上一步的命令)、git pull(远程下载文件)、git log(查看修改日志,键盘jk可翻页)、

3.本地配置文件:vim .git//config,i插入,esc+:冒号+wq,保存退出

4.全局配置文件:vim ~/.gitconfig,i插入,esc+:冒号+wq,保存退出

5.查看修改详情:git log先查看日志,git show+日志的commit编码前6位或者全部,查看当前操作明细

6.撤销刚刚已提交的日志第一行的commit操作(谨慎使用撤销命令,容易造成别人的代码丢失):git add a添加,git commit -m '备注'上传,git reset --soft HEAD~1(撤销刚刚的上传操作,文件回到git add之后的待提交列表;如果去掉--soft,文件回到git add之前的原始本地代码状态)

7.撤销未提交的改动:vim readme(增加一行数据),wq保存返回,git diff(查看修改详情),git checkout -- readme(撤销修改的内容),git status(文件未被修改,无新数据可上传)

8.删除不要的文件:ls(查看当前文件夹下的文件)-rm log(删掉log文件)-ls(本地文件已删除)-git status(git库log文件进入待删除列表)-git rm log-git log查看删除日志-git show 123456查看删除的详情

9.忽略敏感文件:touch database.yml(新建数据库配置文件),git status(查看文件状态),ls -altrh(查看目录下所有文件大小)-vim .gitignore(编辑内容,写入*yml)-wq保存退出-git status查看文件状态-没有database.yml文件,只有.gitignore文件。

10.分支管理(创建分支和删除分支和切换分支):git branch(查看本地分支)、git branch abc(创建名称为abc的分支)、git checkout abc(切换到名称为abc的分支)、git branch -d abc(删除分支)、git status、git log检查分支信息

11.分支合并:当2个分支的数据和信息不一致,需要把分支2号的信息合并到分支1号上

流程:git branch查看分支-git checkout master切换到主分支master-git merge 101(合并分支2号的101的数据合并到当前分支master)-git log(检查101的日志信息已经合并到master)

12.查看配置文件,vim .git查找配置文件config,可以修改远程分支的信息。

【远程操作】ls -alrrh查看全部文件、vim .git(查看全部git配置文件)

1.git官网:www.github.com,创建远程代码库,以便多个程序员共同上传代码。

2.coding官网:https://coding.net,特点创建私有项目免费,不需要像git一样绑银行卡,适合国内团队。

流程:注册网站用户-新建项目(项目名称、说明)-复制第二个已有库命令。

提交代码:vim readme-i修改数据-esc :wq保存退出-git status-git add readme-git commit -m '第六次修改并提交github'-git log-cat .git/config-git push origin master上传最新提交的代码

下载代码:mkdir newfies-cd newfiles-ls-git clone https://github.com/DenzelLee/linux-git.git(git当前库的下载链接)

 

二、mac:自带的软件xcode里面有自带的git程序。

三、windows:git-scm.com,点击页面右侧download2.21下载安装

 

【实战命令】git commit -m提交代码;git pull远程拉下载代码;git push远程推上传代码;

框架:

1.远程一个分支,本地一个分支,切勿建立过多分支,以免合并时各种异常。

2.每天频繁的提交,不要累计太多来提交,不然很难排查问题。

3.不要改变时间线上的时间点,正常从左到右按照主分支分出去子分支,特别是代码被推送到远程服务器上面后,如果修改了时间点,其他同事的git全都用不了了。

【学习笔记】Linux_Git版本控制,新增/删除/移动/提交/下载

 

4.rebase不要用;cherry-pick 没必要用,这些命令都会改变commit的时间点,很危险!!!!(慎用)

5.不要自己搭建git服务器,git服务器非常难搭建,搭建了还要配置环境,配置服务器,如果服务器出问题很难定位和排查。直接用github或者coding.net的网站做版本管理。

6.个人开源项目,要github来管理,方便和其他程序员做交流;商业项目可以用coding.net,因为私有项目是免费的,适合公司做自己的保密项目。千万不要把商业项目放在github,因为很多黑客每天都在用爬虫和搜索引擎在搜索github,一旦发现公司数据库或者服务器登录方式等数据,就会被攻陷。

7.git log 一定要中文而且时间地点作用描述写的越多越好,让所有人一眼能看明白。

8.拓展命令:tag、fetch、merge等命令。

9.中文版官方学习地址:https://github.com/progit/progit