github使用笔记
注意:
1、如果是公司的项目,别往GitHub里面提交啊,除非是你公司自己搭建的托管,Gitlab
2、git命令只能在 .git文件路径下执行
工欲善必先利其器,先不讲怎么使用,咱先把客户端和线上仓库搞好,再说具体操作
github客户端下载安装
本人用客户端,百度封不封不知道。。。。
链接:http://pan.baidu.com/s/1b46nZg 密码:bhzt
下载到本地,然后选择好安装位置,一路next。。。
本地安装完成,先不运行
OK,咱们开始搞线上的GitHub远程仓库
去GitHub官网登录到自己的账户下
没有账户的话,就去注册吧,接下来,
点击 Start a project 创建一个项目
客户端也搞好了,接下来,咱们就开始具体操作了:
建立一test文件夹
并在文件夹内创建一个text.py 文件,编写两行代码
然后当前目录下鼠标右键点击
# Git Bash Here
打开客户端,执行初始化
# git init
# 下面会用到,在这里可以先把用户名和密码的事情解决了 git config --global user.email \'输入可用的用邮箱\' #global为,全局配置,还可换成,local 本地配置 git config --global user.name \'输入可用的用户名
注意,在此目录执行的初始化之后,不能再子目录或其他目录执行这个客户端了
然后查看当前状态
# git status
红色文件表示有改动没有提交到版本库的分支
那么接下来,我们进行创建第一个版本版本
# git add .
# git commit -m \'test版本初始版稳定版1.0\'
注意,到这一步可能会报错,那就是
提示让你输入用户名和邮箱
我们就按照提示输入自己的用户和邮箱就行了
git config --global user.email \'输入可用的用邮箱\' #global为,全局配置,还可换成,local 本地配置
git config --global user.name \'输入可用的用户名\'
输入成功继续执行
git commit -m \'初始化版本
\'
ok ,项目的第一个版本就OK了,查看版本一会说
我们继续编写代码,第二个版本编写好了
我们再在主目录的终端执行:git status,GitHub会自动检测代码变动,我们再执行git add . 和 git commit \'test项目稳定版2.0\',在每次创建编写前后我们尽量执行git status,来查看当前工作区是否是干净的
执行
# git log #查看版本记录
# git reflog #查看所有的版本记录
我们继续编写代码,准备上线
突然,我们发现一个严重的Bug,需要回滚到之前的版本进行处理修改
那么,首先将当前工作区域内容提交到暂存区
# git stash
补充:
stash相关常用命令:
- git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
- git stash list 查看“某个地方”存储的所有记录
- git stash clear 清空“某个地方”
- git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
- git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
- git stash drop 编号,删除指定编号的记录
然后回滚到之前的版本进行修复bug,
# git reset --hard 版本号
经过紧张的修复,bug消除,我们继续回来编写代码
# git stash pop
good,由于我们在之前准备回滚时,执行 git stash 的时候并没有执行添加版本那两条代码,哦,还记得那两条代码吗?git add . 和 git commit -m \'xxxxx\' ,么没有执行git staurs查看
造成现在的pop时GitHub无法判断,在合并时出现冲突,这时候,就会在代码中标注起来冲突的位置,解决办法,
1、手动清除冲突
2、多查看,保持工作区的干净
我们在这里手动解决冲突,别担心,这种冲突很常见的
进过紧张的筹备,我们的项目准备上线了
我们必须保证上线版本的稳定,极少的bug,
然后我们继续开发后续功能,还要应急处理线上版本的bug,怎么办呢,GitHub给我们提供了,分支功能
接下来我们创建GitHub分支
一般的,
- master #GitHub默认分支,我们把这个版本当成稳定版本,或者你随意
- dev #我们建立的开发版本,用来后续的持续开发
- review #调校版本,这个版本交给你们老大看看你的low代码,
- bug #处理应急bug,名字随意
接下来,我们 创建分支并拷贝一份当前分支的代码到新分支
# git bracnh dev
branch相关常用命令:
- git branch 分支名称 创建分支
- git checkout 分支名称 切换分支
- git branch -m 分支名称 创建并切换到指定分支
- git branch 查看所有分支
- git branch -d 分支名称 删除分支
- git merge 分支名称 将指定分支合并到当前分支
进入dev分支进行开发
切换分支
# git checkout dev
我们在开发版本里尽情的写bug吧,哈哈哈
然后,继续生成版本,然后,切换到master分支,进行合并
# git checkout master
# git merge dev #master分支合并dev分支的代码
这样,我们master分支的稳定版就升级了,注意,在合并的时候可能会有冲突,不过,我们手动解决冲突
bug写的好,要分享给世界人民看,so,我们开始往远程仓库托管我们的代码
# git remote add origin https://github.com/WZSwang/test.git #还记得这个https么,创建远程仓库时的地址
# git push origin master #t往远程仓库提交你的分支代码
上传完毕,就是这样的
当我们从别的电脑,或者合作开发的同志需要继续写这段代码,那就在别的终端执行
# git clone https://github.com/WZSwang/test.git
这样,远程仓库的代码就下载到自己的本地了,编辑完继续push提交,这里注意冲突问题
注意,在提交时可能会有问题,那就是在提交的时候,会让你输入用户名和密码,有的命令行输入,有的,就下面的弹窗,输入正确之后,才能上传
为了解决重复输入密码问题,
在终端输入
# ssh-keygen -t rsa 一路确定
然后切换到用户目录查看
# cd ~/.ssh
# ls
注意:id_rsa为私钥,id_rsa.pub为公钥,我们手打开公钥文件,将公钥拷贝到GitHub里
然后我们在终端,输入
# git add remote origin git@github.com:WZSwang/test.git
然后上传和下拉代码的时候,我们执行
# git push origin master
# git pull origin master
注意,
1、别名可以自定义
2、git push origin master可以分两个步骤写
git fetch origin master
git merge origin/master == git rebase oigin/master
OK,上传和下拉我们说完了, 接下来,说点别的
忽略文件:有时候,我们在做版本控制的时候,要忽略某些文件或某个文件夹
那么,我们在终端根目录,
创建一个 .gitignore文件,编辑这个文件
# git config --global core.excludesfile ~/.gitignore_globa # 这个是全局的,根据需求来写
# touch .gitignore # 创建文件
# vim .gitignore # 编辑忽略文件
常用的有:
- a.* #以a开头的所有文件
- test/[abc].py #test文件夹下的a or b or c
- [abc] #a或b或c
- test/* #test文件夹下的所有文件
- !test/a.py #test文件夹的除了a.py的所有文件
- .idea/* #忽略 .idea文件夹下的所有文件
- *.pyc #忽略以 .pyc 结尾的所有文件
- *.excel #忽略以 .excel 结尾的所有文件
再说点别的
协同开发:
方式一,拉人
想要和谁一起,就把他拉进来,他拿到你这个项目的地址,就可以在这个仓库提交代码了,然后也可以把他踢走
方式二,搞个组织
先点击
new organization
step1、给组织输入个名字,邮箱啊,等填完之后 create organization 提交
step2、邀请成员 #可以跳过,后续再邀
step3、对这个组织进行设置,如这个组织有规模,用途,可以跳过这个步骤
然后,这个组织就建好了,就可以玩了
身为大神,怎么能不给那些菜鸟们改一些bug,或者给别人贡献一些代码,那么
首先搜索这个项目名,点击进去:
然后 fork一下他
你自己的仓库里就有了这个项目了,你可以下载到本地进行操作,也可以在这直接写,create new file,然后写自己的代码,写完点击commit new file 进行提交,这样,在对方的终端就会提示,有一个新的消息,至于人家采纳不采纳你的代码,那就是另一回事了
暂时就这些