Python 18 Git&Github
一、git基本操作
1、进入文件夹,初始化git
git init
2、提交要管理的版本
git add . #添加当前目录下所有文件到版本库 git commit -m '第一次提交' #提交到版本库,并写上版本说明
Git把管理的问价分为了两个区域:工作区和版本库
工作区:当前开发程序所在的目录称为工作区,git会自动检测该区域文件的变化,如果有变化会改变文件的状态,可以用 git status来查看文件状态。
版本库:工作区检测到有文件发生变化,那么意味着较上一个版本之后对程序进行了修改,修改完成之后,可以当做下一版本进行提交,那么就是执行 【git add .】 将所有文件提交到暂存区,然后再执行【git commit -m '又一个版本'】提交到版本库的分支即可,之后可以使用【git log】命令查看版本记录。
3、如果想要回到之前某个版本
首先 git log 查看之前的版本信息
再 git reset --hard 版本号,回到指定的版本
4、如果想重新回到版本二
这个时候使用 git log 只能看到版本一及之前的版本信息,需要使用 git reflog 查看所有的操作记录,再使用 git reset --hard 版本号返回。
二、stash和branch
1、git stash可以把当前修改了但是还没有提交的代码保存到某个位置,将文件返回到没有修改时的状态,待修改完bug后,再通过git stash pop 将改完bug的版本和添加了新功能的版本合并。
2、使用branch分支
1 MacBook-Pro-4:pondo wupeiqi$ git branch # 当前在master分支 2 * master 3 4 5 MacBook-Pro-4:pondo wupeiqi$ git branch dev # 创建dev分支用于开发新功能 6 7 MacBook-Pro-4:pondo wupeiqi$ git checkout dev # 切换到dev分支 8 Switched to branch 'dev' 9 10 MacBook-Pro-4:pondo wupeiqi$ vim app01/views.py # 开发新功能到一半,需要紧急修复Bug 11 12 MacBook-Pro-4:pondo wupeiqi$ git add . 13 14 MacBook-Pro-4:pondo wupeiqi$ git commit -m '新功能开发一半' 15 [dev b3ac2cb] 新功能开发一半 16 1 file changed, 2 insertions(+) 17 18 19 20 21 MacBook-Pro-4:pondo wupeiqi$ git checkout master # 切换回master分支 22 Switched to branch 'master' 23 24 MacBook-Pro-4:pondo wupeiqi$ git branch bug # 创建bug分支 25 26 MacBook-Pro-4:pondo wupeiqi$ git checkout bug # 切换到bug分支 27 Switched to branch 'bug' 28 29 MacBook-Pro-4:pondo wupeiqi$ vim pondo/settings.py # 修改bug 30 31 MacBook-Pro-4:pondo wupeiqi$ git add . # 提交bug 32 33 MacBook-Pro-4:pondo wupeiqi$ git commit -m '紧急修复bug' # 提交bug 34 [bug f42f386] 紧急修复bug 35 1 file changed, 1 insertion(+), 1 deletion(-) 36 37 38 MacBook-Pro-4:pondo wupeiqi$ git checkout master # 切换会master 39 Switched to branch 'master' 40 41 MacBook-Pro-4:pondo wupeiqi$ git merge bug # 将bug分支内容合并到master分支,表示bug修复完毕,可以上线 42 Updating 0972f4b..f42f386 43 Fast-forward 44 pondo/settings.py | 2 +- 45 1 file changed, 1 insertion(+), 1 deletion(-) 46 47 48 49 50 MacBook-Pro-4:pondo wupeiqi$ git checkout dev # 切换到dev分支,继续开发新功能 51 Switched to branch 'dev' 52 53 MacBook-Pro-4:pondo wupeiqi$ vim app01/views.py # 继续开发其他一半功能 54 55 MacBook-Pro-4:pondo wupeiqi$ git add . # 提交新功能 56 57 MacBook-Pro-4:pondo wupeiqi$ git commit -m '继续开发完成' # 提交功能 58 [dev c0bfb27] 继续开发完成 59 1 file changed, 1 insertion(+) 60 61 MacBook-Pro-4:pondo wupeiqi$ git checkout master # 切换回master分支 62 Switched to branch 'master' 63 64 MacBook-Pro-4:pondo wupeiqi$ git merge dev # 将dev分支合并到master分支 65 Merge made by the 'recursive' strategy. 66 app01/views.py | 3 +++ 67 1 file changed, 3 insertions(+)
branch相关常用命令:
- git branch 分支名称 创建分支
- git checkout 分支名称 切换分支
- git branch -m 分支名称 创建并切换到指定分支
- git branch 查看所有分支
- git branch -d 分支名称 删除分支
- git merge 分支名称 将指定分支合并到当前分支
三、git rebase命令
1、合并多次commit记录
git rebase -i start end # 将start到end合并成一次提交记录 git rebase -i HEAD~2 # 将前两次合并成一次提交记录
这个命令可以将多次commit的记录合并成一条记录,使得记录变得清晰。
会出现这样的界面:
将最后一行的开头改为s即可。
2、分支合并
使用git rebase xxx命令来合并分支,可以使git log时不出现分叉的情况。
四、Github&Gitlab
- git remote add origin '地址' 与github创建连接
- git remote rm origin 取消关联
- git push origin 分支名 将该分支上传到github
- git clone 地址 将项目拷贝到本地
- git pull origin 分支名 将分支合并到本地
- git fetch origin 分支名 + git merge origin/分支名 = pull