# git学习 **Repository Path**: olupengo/git_learning ## Basic Information - **Project Name**: git学习 - **Description**: git学习总结 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-11-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # git学习 ![分支](https://images.gitee.com/uploads/images/2018/1127/191542_289c36be_2201967.jpeg "branch2.jpg") 对于在学习或工作中需要编写程序的同志是否遇到过这样的问题,你编写了一个基本满足需求的程序,这里将该版本记为版本1,但是距离截止时间还有一段时间,你想对你的程序进行优化,一开始自信满满,直接在版本1上修改,但是修改一段时间后发现修改的程序还没有版本1效果好,你想再次从版本1开始修改,这时你要痛苦地回忆修改了哪些地方,并一一改回版本1的原样。如果是一个大程序,并且对版本1进行了太多修改,版本回退将是很痛苦的一件事。如果你还在通过手动备份进行版本控制(Version Control),备份次数过多你可能会忘记哪个是你想找的版本,不得不说这种做法实在太low了。 如果你想免除版本控制的苦恼,就很有必要了解下目前最先进的分布式版本控制系统git,更重要的是git是开放源码的版本控制软件,Linux之父林纳斯·托瓦兹(Linus Torvalds)花了10天左右时间开发了git的第一个版本。 ## git常用命令 git的安装不难,而且网上教程很多,这里就不说了。本节将列出git的常用命令,对于没有接触过git的同志可以简单浏览一下。另外这一节主要是参照参考[1]写的,参考[1]有些话翻译的不友好。 ### 1.创建新仓库 你为某个项目写的程序一般都会放在一个单独的文件夹中,打开该文件夹,然后在命令行执行 ```shell git init ``` 这样就创建了一个git仓库。 ### 2.克隆仓库 执行如下命令以创建一个本地仓库的克隆版本,相当于将原文件copy了一份: ```shell git clone /path/to/repository ``` 如果是远程服务器上的仓库,你的克隆仓库的命令如下: ```shell git clone username@host:/path/to/repository ``` ### 3.添加和提交 你可以将文件\添加到你的git仓库的暂存区里,使用如下命令: ```shell git add ``` 或者使用如下命令: ```shell git add * ``` 将所有文件添加到git仓库的暂存区里,这里的星号“*”是正则表达式,git支持正则表达式。 使用如下命令,将暂存区保存的文件正式提交到本地仓库: ```shell git commit -m "代码提交信息" ``` 双引号中的内容是你对本次提交的说明,例如可以是“新提交了xx文件”或“对xx文件的xx部分进行了修改”。至此,你的改动已经提交到了HEAD,但是还没提交到你的远程仓库。 ### 4.推送改动 你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远程仓库: ```shell git push origin master ``` 可以把master换成你想要推送的任何分支,master是默认的主分支。 ### 5.分支 ![分支](https://images.gitee.com/uploads/images/2018/1127/191611_fc9291f0_2201967.jpeg "branch1.jpg") 分支是用来将开发过程和正式发行版本绝缘开来的。在你创建仓库的时候,master 是“默认的”。你可以在其他分支上进行开发,完成后再将它们合并到主分支上。 创建一个分支“dev”并切换到dev分支的命令如下: ```shell git checkout -b dev ``` 切换回主分支的命令: ```shell git checkout master ``` 如果你想删除分支dev,执行下面一条命令: ```shell git branch -d dev ``` 除非你将分支推送到远程仓库,不然该分支别人都看不到: ```shell git push origin ``` ### 6.更新与合并 当远程仓库被修改过,你想要更新本地仓库至最新版本,执行: ```shell git pull ``` 这样git就会在你的工作目录中获取(fetch)并合并(merge)远端的改动。要合并其它分支到你的当前分支(例如 master),执行: ```shell git merge ``` 执行以上两条命令,git 都会尝试去自动合并改动。不幸的是,自动合并并非次次都能成功,可能出现合并的两版本有冲突(conflicts)的情况。 这时候就需要你修改这些文件来人工解决这些冲突(conflicts) 了。 在合并改动之前,也可以使用如下命令查看要合并的两分支有哪些地方不同: ```shell git diff ``` 如果看不懂本文,你又想学习git,别灰心,你可以去看廖雪峰的零基础git教程[2]。本文也不是用来入门git的,只是给大家介绍一下这个工具。最后,祝大家用git用的开心!:smile: **参考:** [1] [git 简明指南](http://www.runoob.com/manual/git-guide/) [2] [Git教程 - 廖雪峰的官方网站](https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)