git的相关使用

一.git相关介绍

1 什么是Git

Git是一个免费、开源的版本控制软件

相似的软件还有svn

2 什么是版本控制系统

版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。

 系统具体功能

记录文件的所有历史变化

随时可恢复到任何一个历史状态

多人协作开发或修改

错误恢复

3 什么是Github

Github是全球最大的社交编程及代码托管网站(https://github.com/)。

Github可以托管各种git库,并提供一个web界面(用户名.github.io/仓库名)

相似的软件有:码云

4 Github和Git是什么关系

Git是版本控制软件

Github是项目代码托管的平台,借助git来管理项目代码

5.git示意图

 

二.git的基本使用

1.初始化相关操作

#初始化git和配置邮箱和姓名
git init   #初始化操作
               
git config --global user.email "you@example.com"

git config --global user.name "Your Name"

2.代码编辑好相关操作

git add .   #提交代码到暂存区,(查看状态该文件会变绿的变绿)
git commit -m '描述信息'        #将代码提交到分支,(查看状态会相应的变红)

3.需要以前版本的时候

$ git log                 # 查看日志
  
$ git reset --hard 3f02c8965996be72b95ded036cc9085b47140dfd  # 回滚到指定版本
  
$ git reflog              # 回滚之后再查回滚之前的版本日志信息

$ git reset --hard '编号'


$ git status              # 查看状态

三.出现bug情况下的修复

当代码开发一定的时候,发现以前的版本出现bug,需要进行修复,但是现在的功能也在进行中,所以,我们要先先将代码提交到暂存区,在取修复以前的代码

1.基于stash修复bug

--------------第一版上线,新功能开发中------------
 
$ git stash        # 暂存红色开发一半的新功能(这里也有bug)
 
-----------------------bug修复中-------------------
 
------bug修复完了,重新上线,新功能继续开发-----
 
$ git stash list   # 查看暂存区内容
 
$ git stash pop    # 取出红色新功能(这里bug也被修复了)
   
# 如果出现冲突要手动解决!!!

2.基于分支修复bug

分支学习:branch称为分支,默认仅有一个名为master的分支。一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支

 

 如果出现bug,则可以按照下图进行修改

相关命令以及操作

$ git branch dev      # 创建dev分支,用于开发新功能(在哪个分支创建,就会在当前分支拷贝一份)
 
$ git branch bug      # 创建 bug分支用于修复bug
 
$ git checkout dev    # 小鸣切换到dev去开发新功能去
 
$ git checkout bug    # 小佐切换到bug分支去修复bug
 
---- 小鸣新功能开发中,小佐发现master分支的项目有bug,就在bug分支上改bug------
 
$ git checkout msater # 小佐改完bug后提交并切换到master
 
$ git merge bug       # 小佐合并修复bug的bug分支到master
 
$ git checkout msater # 此时小鸣也开发完新功能,提交后切换到master分支
 
$ git merge dev       # 在master上合并dev新功能
 
$ git branch          # 查看存在的分支
 
$ git branch -d bug   # 删除指定分支
 
 
# 注意:切换分支之前要add .  commit 。如果合并有冲突要手动解决,再提交。

四.托管代码到代码管理平台(以github为例)

1.注册账号

首次连接GitHub需要输入

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

2.将代码拖推上GitHub

git add .
git commit -m 'xx'
                    
git remote add origin https://github.com/xu-fang-ming/git_test.git  #给项目指定一个源
                    
git push origin master

# 也可以通过-u指定以后push的默认分支 git push -u origin master ,此操作后,git push 就表示 git push origin master

 

3.在公司和家里之间进行相互的合作

#第一次获取代码的方式有以下三种:

#一.克隆
git clone https://github.com/xu-fang-ming/git_test.git

cd 'test' #切换到应的目录下进行操作



#
git init 
git remote add origin https://github.com/xu-fang-ming/git_test.git
git pull origin master 



#
git init 
git remote add originhttps://github.com/xu-fang-ming/git_test.git
git fetch origin master 
git merge origin/master



#以后的操作
git pull origin master 
                        
                        
git fetch origin master 
git merge origin/master 

示例

---------------------在公司-----------------------
 
$ git branch dev                    # 创建dev分支
 
$ git checkout dev                  # 切换到dev分支进行开发
 
$ touch work.txt                    # 开发了一半
 
$ git add .
 
$ git commit -m "在公司开发了一半"
 
$ git push origin dev                # push到分支
 
------------------------下班回家-----------------------
 
$ git clone https://github.com/lichengguang/gitdemo.git  # 将项目clone下来
 
$ cd gitdemo/
 
$ git branch dev                      # 创建dev分支(默认clone的是master)
 
$ git checkout dev
 
$ git pull origin dev                 # 在dev分支下将github上的dev分支pull下来
 
$ mv work.txt worked.txt              # 继续开发完
 
$ git add .
 
$ git commit -m "项目在家完成了"
 
$ git checkout master
 
$ git merge dev                        # 切换到master进行合并
 
$ git push origin master               # 将完成合并的代码push到github的master分支
示例

五.多人协同开发模式

 

方式一:添加合作者的形式

 

 

方式二:新建组织

 

3.协同开发

master分支跟线上的代码一样。另外每个人再使用一个单独的分支,再创建review分支用于代码的review。

每个人一个功能模块开发完后,合并到review,一般由组长进行代码的review。通过测试后在上线

 

六.过滤掉一些不需要上传的文件(.gitignore)

可以创建一个.gitignore文件来实现过滤的不需要上传的文件

touch gitigore  #创建一个这样的文件(用于过滤)


#文件里面可以写,例如:

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

等等

七.git的两种连接方式

1.https

这种方式每次往上推都需要写用户名和密码

https://github.com/xu-fang-ming/test6.git  #每次push都需要账号和密码

https://用户名:密码@github.com/xu-fang-ming/test6.git   也需要输入用户名和密码

私有项目就这样链接: git clone https://用户名:密码@github.com/xu-fang-ming/test6.git

2.ssh

$ ssh-keygen -t rsa  # 生成ssh
 
$ cat ~/.ssh/id_rsa.pub  查看公钥


#然后把公钥复制下来

把公钥放入:

 

 

 

git基本使用差不多就是这些了

posted @ 2018-04-09 16:05  明-少  阅读(102)  评论(0)    收藏  举报