Git的版本控制和分支管理

一、新建一个空文件夹(这个文件夹将被设置为仓库,我们的代码将被托管在此)

mkdir git_test

二、初始化Git(一定要在步骤一种的创建的文件的目录下使用git init命令)

git init    //将当前目录设置为git的仓库

三、将代码从本地提交到缓冲去

git add  test.py

四、将代码从缓冲区提交到Git仓库

git commit test.py
  • git status   查看当前的代码修改状态
  • git log  查看git日志
  • git log --pretty=onelie  只显示提交的ID和日志内容
  • git reset --hard HEAD^  回滚到上一次
  • git reset --hard 343...   回滚到指定版本
  • git reflog       查看所有的操作记录(Q 退出reflog界面回到bash命令行)
  • checkout     撤回到未修改之前的状态(未提交的状态)
  • rm file  本地删除  然后再  git add/rm file 提交到暂存区
  • git checkout  --file  把工作区里的操作撤销

五、从远程克隆git项目

  • http:可以直接下载
  • ssh:必须输入用户名密码来认证(在github上添加响应密钥也可以不用输)

使用远程仓库管理项目的一般流程:

  1. 在github上新建一个仓库(gitTest)
  2. 然后使用git clone命令从远程下载上面已经创建好的仓 库(文件保存在执行该命令的目录下面)
    $ git clone git@github.com:BobLiu1996/gitTest.git 
  3. 进入这个项目,注意:只有在这个目录里面才能管理到项目。

  4. 当上面的提交本地仓库流程完成之后,使用一下命令和远程仓库建立连接(当然发可以使用https协议,这里建议使用ssh协议)

    git remote add origin git@github.com:BobLiu1996/gitTest.git  
  5. 再向远程仓库提交代码(如果再github上的添加有相应ssh客户端的密钥的话,则可以不使用这个参数)

    git push -u origin master  //-u参数表示要输入githu网站的用户名字     

 当然为了方便,我们可以再github上添加自己的ssh客户端的密钥(以Linux系统为例子,gitHub网站其实就是一个提供ssh和https服务的网站)

生成客户端的密钥:

$:ssh-keygen    //生成ssh客户端的密钥

生成的密钥将保存在:~/.ssh/id_rsa.pub文件中,所以将这个密钥中的内容全部复制出来(注意,用vim打开的话,复制文本时会出现部分可是混乱,因此可以使用一下方法:

$:cat id_rsa.pub 

 将密钥打印到bash端,再使用复制命令黏贴即可

  • 针对仓库中某一个项目进行设置

进入github中已经建立好的仓库,依次点击"Setting"----->"Deploy Keys"----->将上面复制的密钥进行响应粘贴即可(注意勾选写的权限)

  • 针对仓库和中所有的项目进行设置

不再进入某个项目了,直接点击头像,依次点击"setting"---->"SSH and GPG GEN "   ,将上面复制的密钥粘贴即可。

当向本地提交完后,再使用

$:git pussh origin master    //向远程创库提交

 注意:当使用https协议从github克隆下的项目时,而又想使用ssh向远程仓库提交文件时,只要更改.git中的config文件即可

$:vim .git/config

像下面改url

[remote "origin"]
url = git@github.com:BobLiu1996/gitTest.git       //BobLiu1996为网站用户名,gitTest.git为你的项目名 

六、分支管理

为什么要用分支管理?相当于操作系统中的多进程,这些个分支互不影响,举个例子:在在团开发过程中,加入你的代码还没完成,如果提交到仓库,则会导致其他人从仓库中下载的代码无法运行和调试,但是你又的保持你的开发进度,怎么办??使用git中的分支管理。

基本流程:

  • 远程创建空仓库
  • 把本地仓库推送到远程(本地已经有仓库)
git remote add origin git@github.com:BobLiu1996/gitTest.git

git push origin master (推送到远程仓库)
  • 创建分支(平行宇宙,由于自己开发dev)
git checkout -b branch_name  创建并且切换到分支

git checkout branch_name   切换到分支

  

git pull    //从远程更新代码跟新到本地

git push //把本地代码推送到远程

git merge dev //将分支(dev)合并到主库(master)

  在合并的过程中可能会产生冲突,这种冲突经常是由于master分支和dev分支修改了同一个文件,这个时候需要我们自己手动解决冲突。

然后要将本地的无冲突的文件重新push上github仓库。由于这个文件可能是新文件,所以需要全套的流程git add .    git commit -m "注释"  git push

 gti stash   把当前工作环境临时保存

git stash apply   恢复之前保存的临时工作环境

git stash list   查看临时保存的列表

git stash drop  删除当前临时保存的环境备份

git stash pop 恢复并删除临时保存的环境备份

  

 

 

    

posted on 2019-03-15 20:02  小毅哥哥Bob  阅读(1281)  评论(0编辑  收藏  举报

导航