凉城旧巷
Python从入门到自闭,Java从自闭到放弃,数据库从删库到跑路,Linux从rm -rf到完犊子!!!

Git

一、什么是Git

Git是目前世界上最先进的分布式版本控制系统。简单说,就是团队开发时,管理代码的软件

二、SVN与Git的最主要的区别?

(1)SVN

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,干活的时候个人电脑先从中央服务器拿到最新版本,然后操作,操作完以后,又推送回中央服务器。必须联网才能工作。svn服务器要是坏了的话 ,那就是真的坏了

(2)Git

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库。所以,工作的时候就不需要联网了。服务器的数据丢了没有关系,换一台就好了,因为本地已经保存了一份

三、安装Git

1、mac安装

brew install git

2、windows安装

官网下载,直接安装:https://git-scm.com/downloads

四、Git配置及使用

  • 工作区:开发者的工作目录
  • 暂存区:修改过,但未被录入版本库的区域,git add 表示添加到暂存区
  • 版本库:就是本地仓库,记录日志及版本信息,git commit 表示添加到版本库

1、进入指定的盘的文件夹中

cd d:    # 进入d盘

cd ttt      # 进入d盘的ttt文件夹

2、git的配置

  • 最好先配置,否则,后期可能报错是因为没有配置
$ git config --global user.name '任意用户名'
$ git config --global user.email '邮箱'

3、git目录的创建

$ mkdir test  # 在test文件中创建test文件

或者去d盘ttt文件中手动创建test文件

4、初始化

$ git init

初始化以后,目录后悔多一个(master),表示捕获

5、新建一个文件

$ vim a.py

或者,直接手动建文件

6、管理文件

$ ls    # 查看当前文件夹下的文件
$ vim a.py 
   # 按 i 进入编辑模式,
   # 按 esc退出编辑模式
   # 按 shift + :进入命令行模式
   # 按 wq 保存并退出

或者
去文件夹下手动创建文件

7、查看本地仓库的状态

$ git status

如果现实下图,说明 a.py 没有被管理,可能是修改过或者新建的文件,没有被提交本地仓库

8、添加文件

$ git add a.py(文件名)
$ git add .     # 添加所有文件

9、再查看一次

$ git status

添加过以后,再次查看,会显示下图,说明文件到了缓存区,准备提交

10、提交到本地的仓库

$ git commit -m '注释的内容' a.py(文件名)

11、查看本地仓库中的文件

$ git ls-files

12、再查看一次

$ git status

如图,表示,所有的文件已经被提交到本地仓库中

13、删除本地仓库的文件

$ git rm a.py(文件名)
# 如果不用git ,再本地仓库中不会删除

14、修改过后提交

$ git commit
# 或者
$ git commit -m '添加abc文件' a.py b.py c.py

回车以后,会直接进入编辑模式,然后将注释去掉,按esc,并且wq保存并退出即可

五、添加到远程仓库

1、配置

$ git remote add origin(远程地址的别名,一般为origin) https://gitee.com/ljtyllr/test.git(远程仓库项目地址)

2、把远程代码拉到本地

保证本地是最新的代码

$ git pull origin master(分支的名字)

3、本地代码推到远程仓库

将本地最新的代码提交到远程服务器

$ git push origin master(分支的名字)

六、团队开发管理

1、从远程仓库获取最新代码

$ git clone https://gitee.com/ljtyllr/test.git(远程仓库项目地址)

2、冲突解决方案(谨慎更改他人代码)

改动别人的文件,容易发生冲突

(1)提交全部文件

$ git commit -a 

冲突解决完了,保存退出后,(master|MERGING)就会变成(master)

(2)不提交全部文件

$ git commit file/to/path -i -m "merge"

七、查看修改日志

$ git log    # 查看项目日志
$ git reflog    # 查看详细信息

越上面版本越新

八、版本的切换

$ git reset --hard "head^"   # 一个脱字符表示退到上一层,两个^表示推到上两个版本
$ git reset --hard 5b34fe4  # 跳到指定的版本

丢弃之前的改变

$ git checkout a.py(文件名)    # 丢弃之前的改变

九、分支管理

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一般从远程仓库中拉到代码,就创建分支,在分支上对代码进行操作

1、查看分支

$ git branch

2、创建分支

$ git branch dev(分支名字)

3、切换分支

切换到分支上,会自动将master上的代码带过来

$ git checkout dev(分支名字)

4、合并分支(一般有大哥操作)

将子分支上(dev)的代码合并到主分支(master)上

$ git checkout master   # 先切换到主分支
$ git merge div  # 将子分支上的代码合并到主分支

十、公钥登录

push代码的时候,老是需要输入用户名和密码,非常不方便。

因此,配置公钥,可以避免频繁的输入用户名和密码

1、配置ssh格式的远程仓库

$ git remote add 远程仓库名 远程仓库地址

2、创建SSH公钥

$ ssh-keygen -t rsa -C 'your_email@example.com'(邮箱)

一直回车,不用输入密码,完成之后,可以再主目录里找到.ssh文件夹,内有id_rsaid_rsa.pub两个文件, id_rsa是私钥,id_rsa.pub是公钥

3、到github或者码云中公钥中添加

posted on 2018-12-18 20:53  凉城旧巷  阅读(390)  评论(0编辑  收藏  举报