git和github的区别:
简单来说,git是软件,github是代码仓库,可以用git向github提交和下载代码,也可以进行协同开发
下面详细介绍Git的使用
**************************基本上传代码到本地库**************************
'''
分为三个区域:
工作区、暂存区、本地库
'''
cd h:pythonweb/onlin_answers # 具体在需要上传的文件目录
一、初始化项目(建立仓库)
git init
二、配置email和名字(设置签名,第一次才需要) # 区分开发人员
git config user.name gyk # 项目级别(只在当前目录有效)
git config user.email gyk
或
git config --global user.name gyk # 系统级别(任何目录有效)
git config --global user.email gyk
三、添加文件到暂存区
git add new_file.py
四、提交文件到本地仓库(双引号中是注释)
git commit -m "第一次提交git项目" new_file.py
******************************其他基本操作******************************
1.查看工作区当前状态
git status
2.显示历史提交记录
git log
3.精简版git log
git log --pretty=oneline # 显示完整版本索引
git log --oneline # 显示部分版本索引
4.显示执行过的步骤
git reflog
5.回滚(只能回退,不能向前)
1.HEAD # 工作区、暂存区、本地库都会回滚
git reset --hard HEAD^5 #hard表示当前版本,HEAD^表示上一个版本,HEAD^5表示前5个版本,以此类推
git reset --hard 343dBdt # 回滚到指定版本(343dBdt)为版本号前7位
2.mixed # 在暂存区、本地库回滚
git reset --mixed 343dBdt
3.SOFT # 仅在本地库进行回滚
git reset --soft 343dBdt
6.比较差异
1.比较当前(工作区)和之前(暂存区)的差异
git diff new_file.py
2.比较当前(工作区)和之前(本地库)的差异
git diff HEAD new_file.py # HEAD后也可跟^,表示和历史版本比较
3.将当前(工作区)和之前(本地库)所有文件比较
git diff HEAD # 不指定文件名
********************************分支管理********************************
1.显示所有分支
git branch -v
2.创建新的分支
git branch hot_fix
3.切换分支
git checkout hot_fix
4.合并到主分支
一、切换到主分支
git checkout master
二、合并
git merge hot_fix
'''
当合并分支时,同一文件的同一行在两个版本中都有所改动,发生冲突
发生冲突表现为:
<<<<<<<<<<:HEAD
....
==========
>>>>>>>>>>:hot_fix
....
'''
5.手动解决问题并保存,此时在用status查看时,显示合并中,建议add,再commit
6.用add标记冲突已解决
git add new_file
7.用commit结束合并
git commit -m '冲突已经解决' # 注:不要带文件名
*******************************github的使用*****************************
# www.cnblogs.com/alex3714/articles/5930846.html # git详解
1.注册账号
2.创建仓库
3.将仓库的http地址复制下来
4.到本地git bash界面内
5.查看本地所保存的远程仓库
git remote -v
6.给远程仓库新建一个别名,并保存在本地
git remote add origin http://github....123... # origin为保存的别名
7.将本地库推送到远程仓库
git push origin master
# 成员
克隆远程库
git clone http://github....123...
一个命令,三个效果:
1.把远程库下载到本地
2.创建远程地址别名
3.初始化本地库
add...
commit...
push...
8.邀请成员加入团队
github账号内,settings-->Collaborators-->搜索成员账号-->点击add Collabrators
-->点击Copy invite link,并复制链接-->发送给成员-->成员访问链接,并同意
# pull==fetch+merge
9.抓取(只是将远程库拉取到本地,但并没有与本地库合并)
git fetch origin master
10.切换到origin的master查看
git checkout origin/master
11.将远程和本地合并
git merge origin/master
9.抓取并合并(在确定成员提交的内容没有问题的情况下,直接合并)
git pull origin master
****************************远程推送时发生冲突**************************
# 成员
1. git push origin master
'''
此时会报错,提示推送失败
需要先进行拉取,并进行修改,再进行推送
'''
2. git pull origin master # 进入megie状态
3. vim new_file # 修改问题文件
4. git add new_file.txt # 标记问题已解决
5. git commit -m '冲突已解决' # 不带文件名
6. git push origin master
********************************跨团队协作******************************
# 第三方
1.创建自己的github
2.用自己的账号进入正在开发的远程库
3.点击右上角的Fork,等待Fork,Fork完毕之后该项目会复制道自己的github上
4.再进行clone、vim、add、commit、push等操作 # 克隆时地址还是原远程库的地址,push只能推送到自己的账号中,并可以进行查看
5.点击Pull request-->New pull Request-->Creat pull request-->通知原项目主人
# 原项目主人
1.进入自己的github主页
2.此时Pull request上会有1个未处理标记,点击查看第三方修改,还可以进行发消息交流
3.确定没有问题,则进行合并代码:点击Merge pull request-->填写log信息-->点击Confirm merge进行合并
4.此时已经合并到自己的远程库中,再进行拉取查看操作.......
5.协作完成
******************************用SSH进行上传*****************************
'''
SSH一台电脑只需要登录一次,后续上传不需要再登录
而Http每次上传都需要登录
'''
1.生成ssh目录
ssh-keygen -t rsa -C "1357xxxxxxx@163.com"
2.去对应目录C:\Users\specter\.ssh下用记事本打开 id_rsa.pub,复制ssh公钥
3.到git仓库中Settings里-->点击SSH and GPC key-->添加ssh key,粘贴进去
4.到git仓库中选ssh复制并在命令行中输入:
git remote add origin git@github.com:.....git
5.上传代码
git push -u origin master
***************************************************************************
********************************https上传*********************************
git上新建库,并复制https链接
本地建文件夹,bash进入,执行:
git clone https://........
生成库文件夹后,进入文件夹
将项目复制进去(不包含项目总文件夹)
bash进入库文件夹,执行:
git branch
git add .
git commit -m '******'
git push(结束)(若项目超过4m,需修改git配置文件)
***************************************************************************