Git--- Github

Posted crazysheldon1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git--- Github相关的知识,希望对你有一定的参考价值。

Git基础

什么是git?

git是一个版本控制系统,也可以说当你的代码发生变化进行管理的工具.在git出现之前这样的工具SVN,CVS.

git和github的区别,

简单来说,git是一个版本控制的工具,github是一个代码托管平台,一个代码仓库.

用git管理项目

首先进入项目目录,启动git--->Git Bash Here,这样就开启了git管理系统启动了一个git图形界面,执行 $ git init . 初始化,在项目中便形成了一个.git的目录 然后通过一系列命令进行版本控制。

注意:项目内容在没有被管理的时候status为红色,被管理后为绿色!

#开始管理项目(基础3步走)

git init .    #首先初始化,生成 .git目录

git add .      #将整个项目管理起来

git commit -m  "项目01版本"  #"项目的01版本"当然执行的时候可能会报错,需要配置下git config 

"""
执行这两条命令配置邮箱和名称
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
"""

 

git分区

工作区: 项目中当前的编辑位置.

缓存区:git add 之后的区域,将文件放在缓存区.

版本库:commit之后的区域就是版本库.

git常用命令

git init .        # 初始化
git add .      # 将工作区的所有文件添加到缓存区
git commit -m “提交信息”   #将缓存区的内容添加到版本库,注意:"提交信息"写的越详细越好!方便后期管理
git status                           #查看当前的状态

git reset --hard  hash值     #回退到指定的版本,这里的hash值就是每次commit的时候都会生成一个类似md5值的字符串,例如 "9d2aaf3ea89a9e6b8d8050a6d1a730f6bb4a0d85"

git checkout -- file(指定文件)        # 将文件回滚到最近一次提交的样子    该命令比较危险在不确认文件用途的时候慎用!!!


git log                          # 查看当前位置之前的提交记录
git log -p 文件       #指定版本库的区别
git log pretty=online     #将commit过的值 版本库信息全部显示
git log --pretty="format:%an %h %T %ar"   #格式化显示版本库信息  例如%an  作者名称  %h 用户简短hash值 %ar修订日期 %T树状显示

git reflog                      #查看所有的记录(只要提交过的记录就能查到)

git reset HEAD file      # 将文件从缓存区拉取到工作区

git diff     对比文件                # 对比工作区和缓存区
git diff --cached    对比文件      # 对比版本库和缓存区

 

git-快照

git stash    #将当前内容创建一个快照,并回到最后一次提交的位置,前提是有改变的情况下
git stash list  #查看快照列表

git stash pop  回到快照位置,并删除这个快照  相当于以下两条命令集合
git stash apply   #回到快照
git stash drop    #删除快照

 

git-分支

分支的作用就是用于团队协同开发,这样代码就会出现较大分歧。这时候就需要用到分支了,不同的任务组在不同的分支上开发,互相之间不会影响。git分支的特性和BUG修改都在不同的分支上进行开发和测试。这样规范了整个软件的开发流程。分支之间的互不影响这种特性可以增加团队合作的效率。GIT分支的另外一个重要特性就是可以合并不同软件仓库(fork)的分支。

注意点:一般来说禁止在master分支上修改,因为master为线上代码,一旦出现问题,会产生严重的后果.基本上在dev分支上修改

#分支的常用命令
git branch  name   #创建一个分支
git branch             #查看分支列表
git checkout name   #切换分支
git branch -d name   #删除指定分支

git checkout -b name   #在当前分支的基础上 创建并切换一个分支

git merge master bug    #将这两个分支合并

 

冲突

#下面这种情况就表示出现了冲突
Auto-merging templates/car.html
CONFLICT (content): Merge conflict in templates/car.html
Automatic merge failed; fix conflicts and then commit the result.

<<<<<<< HEAD
    <li>兰博基尼2/3</li>
=======
    <li>兰博基尼1/2</li>
>>>>>>> dev1

Auto-merging templates/car.html
CONFLICT (content): Merge conflict in templates/car.html
The stash entry is kept in case you need it again.

 
<<<<<<< Updated upstream
<li>奇瑞瑞虎7</li>
=======
<li>奇瑞瑞虎</li>
>>>>>>> Stashed changes

#分支和dev1同时改动同一个文件相同的地方,合并的时候git无法处理,产生冲突,需要人为解决
#创建快照之前,将li标签改为奇瑞瑞虎,当创建快照后然后在将li标签改为奇瑞瑞虎7,当执行删除快照 git stash pop 的时候就会产生冲突,需要手动选择解决

 

Github托管代码

将代码上传github

1.先创建一个仓库,选择公开和私有随意.

#上传操作
git remote add origin https://github.com/liuxiaofei1071/shop.git     #将自己github url地址重命名为origin  
git push origin master   #此时上传master分支代码到github的coco仓库 ,如果没登录Github就需要进行登录

 

2.这样只能上传master分支,如果是多分支的话

git push origin dev   #传dev分支到github

git push origin dev1   #传dev分支到github

 

将从github代码拉取到本地

1.进入对应仓库,如我的 liuxiaofei1010/shop,点击Clone or download按钮,复制github上的项目url,在git中执行对应的命令

#相关git命令
git clone github的url      #该命令就可以将代码从github上拉取下来,但是仅限于master分支

#拉取其他分支代码
git checkout -b dev origin/dev   #拉取dev分支
git checkout -b dev1 origin/dev1  #拉取dev1分支

 

两台机器分别更改github代码

#公司pc
git pull origin dev1    #将dev1分支代码同步到机器dev1分支
#修改后
git push origin dev1   #将本地dev1分支代码同步到github的dev分支

#home-pc
操作同上..

 

 

 

 

 

 ...待续

以上是关于Git--- Github的主要内容,如果未能解决你的问题,请参考以下文章

Git

PHP代码-psysh调试代码片段工具

源代码管理工具GitHub介绍

源代码管理工具GitHub介绍

GitHub

Github介绍与使用