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(+)
View Code

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
原文地址:https://www.cnblogs.com/yinwenjie/p/10889640.html