GIT

 Git

什么是git?
          git 是一个免费,开源的版本控制软件
GitHub与git的是什么关系
          git是版本控制软件
          GitHub是项目代码托管的的平台,借助的是git来管理项目代码

Git
     版本控制,各行各业都在用
版本控制工具
       ----svn
     ----git
    git可以帮助使用者进行版本的管理

Git步骤

  • 1、 在新建的项目下右击选中 Git Bash
  • 2、 命令:1.git init 初始化
  • 2.git config --global user.email ''
  • 3.git config --global user.name ''
  • 4.git add . 提交
  • 5.git commit -m '描述信息'
  • 6.git log 查看提交记录
  • 页面有改动,执行下面
  • 7.git add templates/index.html
  • 8.git commit -m '写具体改动的内容'
  • 不想要上一次改动的执行以下
  • 9.git reset --hard 版本号
  • 如果有想要上一次功能
  • 10.git reflog 版本号
  • 11.git reset --hard 版本号
  • 12.git status 查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。

 

出现bug,修复bug

方案一:stash

      stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。

 

特别的:执行 git stash pop 命令时,可能会遇到冲突,因为在紧急修复bug的代码和通过stash存储在“某个地方”的代码会有重合部分,所以执行 git stash pop 时候就会出现冲突,有冲突解决冲突即可。

stash常用的操作:

  • 12.git stash 暂是存储
  • 13.git stash pop 取出存储的内容 (可能有冲突)
  • 14.git stash list 查看“某个地方”存储的所有记录
  • 15.git stash clear 清空“某个地方”
  • 16.git stash apply 将指定编号记录从“某的地方”重新拿到工作区(可能有冲突)
  • 17.git stash drop 删除指定编号的记录

方案二:branch

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

  • 1、创建一个修复bug的分支:git branch bug ,bug分支是在master分支上建的     即:拷贝一份当前所在分支代码到新分支
  • 2、查看一共有几个分支 : git branch
  • 3、跳转到bug分支:git checkout bug              git status   查看状态
  • 4、跳转到master分支:git branch master
  • 5、创建一个修复bug的分支:git branch dev #只做开发的版本现在就有三个分支了,每个分支都是不一样的,bug修复完了,现在就要合并在master上了。
  • 6、master和bug分支合并:git merge bug
  • 7、删除bug分支:git branch -d bug
  • 8、继续开发,切到dev:git branch dev
  • 9、开发完毕,master和dev合并:git merge dev
  • 合并的时候可能出现冲突,可能不出现,出现冲突了就得手动解决
MacBook-Pro-4:pondo wupeiqi$ git branch dev                 # 创建新分支,即:拷贝一份当前所在分支代码到新分支
MacBook-Pro-4:pondo wupeiqi$ git checkout dev               # 切换到dev分支
MacBook-Pro-4:pondo wupeiqi$ vim app01/views.py             # 开发功能
MacBook-Pro-4:pondo wupeiqi$ git status                     # 查看状态,即:在dev分支修改了app01/views.py文件
On branch dev
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   app01/views.py

no changes added to commit (use "git add" and/or "git commit -a")
MacBook-Pro-4:pondo wupeiqi$ git add .                      # 将修改文件添加到版本库的暂存区
MacBook-Pro-4:pondo wupeiqi$ git commit -m '新功能开发完毕'    # 将暂存区的内容提交到当前所在分支,即:dev分支
[dev 32b40cd] 新功能开发完毕
file changed, 2 insertions(+) 
MacBook-Pro-4:pondo wupeiqi$ git checkout master             # 切换回master分支 
Switched to branch 'master'
MacBook-Pro-4:pondo wupeiqi$ git merge dev                   # 将dev分支内容合并到master分支
Updating 0972f4b..32b40cd
Fast-forward
 app01/views.py | 2 ++
file changed, 2 insertions(+)

一般流程示例(上图)
方案二修复bug

 

MacBook-Pro-4:pondo wupeiqi$ git branch                     # 当前在master分支
* master
 
 
MacBook-Pro-4:pondo wupeiqi$ git branch dev                 # 创建dev分支用于开发新功能
 
MacBook-Pro-4:pondo wupeiqi$ git checkout dev               # 切换到dev分支
Switched to branch 'dev'
 
MacBook-Pro-4:pondo wupeiqi$ vim app01/views.py             # 开发新功能到一半,需要紧急修复Bug
 
MacBook-Pro-4:pondo wupeiqi$ git add .
 
MacBook-Pro-4:pondo wupeiqi$ git commit -m '新功能开发一半'
[dev b3ac2cb] 新功能开发一半
 1 file changed, 2 insertions(+)
 
 
 
 
MacBook-Pro-4:pondo wupeiqi$ git checkout master            # 切换回master分支
Switched to branch 'master'
 
MacBook-Pro-4:pondo wupeiqi$ git branch bug                 # 创建bug分支
 
MacBook-Pro-4:pondo wupeiqi$ git checkout bug               # 切换到bug分支
Switched to branch 'bug'
 
MacBook-Pro-4:pondo wupeiqi$ vim pondo/settings.py          # 修改bug
 
MacBook-Pro-4:pondo wupeiqi$ git add .                      # 提交bug
 
MacBook-Pro-4:pondo wupeiqi$ git commit -m '紧急修复bug'      # 提交bug
[bug f42f386] 紧急修复bug
 1 file changed, 1 insertion(+), 1 deletion(-)
 
 
MacBook-Pro-4:pondo wupeiqi$ git checkout master            # 切换会master
Switched to branch 'master'
 
MacBook-Pro-4:pondo wupeiqi$ git merge bug                  # 将bug分支内容合并到master分支,表示bug修复完毕,可以上线
Updating 0972f4b..f42f386
Fast-forward
 pondo/settings.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 
 
 
 
MacBook-Pro-4:pondo wupeiqi$ git checkout dev               # 切换到dev分支,继续开发新功能
Switched to branch 'dev'
 
MacBook-Pro-4:pondo wupeiqi$ vim app01/views.py             # 继续开发其他一半功能
 
MacBook-Pro-4:pondo wupeiqi$ git add .                      # 提交新功能
 
MacBook-Pro-4:pondo wupeiqi$ git commit -m '继续开发完成'      # 提交功能
[dev c0bfb27] 继续开发完成
 1 file changed, 1 insertion(+)
 
MacBook-Pro-4:pondo wupeiqi$ git checkout master            # 切换回master分支
Switched to branch 'master'
 
MacBook-Pro-4:pondo wupeiqi$ git merge dev                  # 将dev分支合并到master分支
Merge made by the 'recursive' strategy.
 app01/views.py | 3 +++
 1 file changed, 3 insertions(+)
View Code

4、修复Bug流程:

  • git branch dev
  • git checkout dev

# 写代码

  • git add .
  • git commit -m 'xxx'
  • git checkout master
  • git branch bug
  • git chekcout bug

# 修复bug

  • git add .
  • git commit -m '紧急修复bug'
  • git checkout master
  • git merge bug
  • git branch -d bug
  • git checkout dev

5.家里(将代码推送到github):

       先注册一个github

git可以是用该URL进行向远程推送版本信息或获取版本信息

 

将代码推送到github

  1. git add .
  2. git commit -m 'xx'
  3. git remote add origin https://github.com/WuPeiqi/greenlu.git
  4. git push origin master

6.公司( 新公司第一次获取代码):
  方式一
     git clone https://github.com/WuPeiqi/greenlu.git 直接克隆
  方式二
    git init
    git remote add origin https://github.com/WuPeiqi/greenlu.git
    git pull origin master 直接拿回来
 方式三
   git init
   git remote add origin https://github.com/WuPeiqi/greenlu.git
   git fetch origin master 拿到分支上了
   git merge origin/master 合并在一起

   git fetch origin master, git merge origin/master这的两句相当于git pull origin master 这一句
7.、阶段三:
          协同开发:
           -----项目协作者
           -----组织

8、注意事项:
       --- .gitignore 文件

9、用户认证:
      由于Git和Github交互操作可能会很频繁,那么一定少了用户授权的操作,为了防止每次操作重复输入用户名和密码,Git提供了两种解决方法:
          1.密钥:
                   首先创建一对秘钥 ssh-keygen -t rsa,然后将 id_rsa.pub (公钥)内容拷贝到github中,日后操作无需再输入用户名和密码。
                   注意:这种方式需要使用GIt中 git@github.com:WuPeiqi/xxxxx.git 格式地址。

 

 使用Git下载指定分支命令为:git clone -b 分支名仓库地址

 

  使用Git下载v.2.8.1分支代码,使用命令:git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git

 

  如下图所示:

 

  

解释一下这个命令:-b表示要从分支下载,v2.8.1就是具体的某个分支的名称,https://git.oschina.net/oschina/android-app.git这是app源码的git仓库地址

 

协同开发是从分支上clone下来,提交到clone下来的的那个分支上,如下:

 

posted @ 2017-12-06 16:43  孟庆健  阅读(285)  评论(0编辑  收藏  举报