美高梅官方网站66159

每天有许多的感悟和日记,版本控制是一种记录一个或若干个文件内容变化

作者:美高梅官方网站66159    来源:未知    发布时间:2020-04-21 22:08    浏览量:

Android Studio 1.4 Beta 3 发布,该版本包修复了大量的 bug,我们将重设 release 分支到 dev 分支,以便包含大量高优先级的 bug,以及我们最近修复的一些重要的 bug,包括:

Git

版本控制,在各行各业都需要,比如一个艺术家,喜爱画画、摄影,到哪里去进行拍摄和画画,每天有许多的感悟和日记,当今天写了感悟,到明天到新的地方又有一点感悟想加入到昨天的,这就需要以前的版本的日记了。

一、了解Git和Github

  • HiDPI/Retina 显示改进 for Windows and Linux

  • Logcat 视图大部分重写了,以解决一些稳定性和可用性相关的 bug。

  • 自定义视图里与 XML 验证和 code 补全相关的 bug,同时修复了一些源代码格式化和重命名模块重构相关的bug。

  • 对内置模板作了许多调整,修复固定编译的问题和删除过时的 API,以及合并设计库

  • 解决了破碎的 JDK 安装,不兼容插件,失败的补丁更新循环等等。

  • gradle 依赖自动添加源

  • 上百个其它的 bug 修复

版本控制工具

1- svn
2- git  #用软件来帮助使用者进行版本的管理

3

 

1

1- svn

2

2- git  #用软件来帮助使用者进行版本的管理

3

1、什么是GIT?

因为有大量的修复,我们初期将把该版本放到 Canary 频道,如果一切运行良好再放到 beta 频道。

基本方法

git init     #初始化
git config --global user.email "邮箱"     #创建邮箱
git config --global user.name  "用户名"   #创建用户名
'''
每次修改要提交都要先进行 git add . 将工作文件提交到本地,然后在创建版本
'''
git add '文件名'   #将工作文件修改提交到本地暂存区 .表示当前目录的所有文件
git commit -m '版本名称'         #   创建版本

git status         #查看文件的修改部分
git log       #查看该文件每次的提交记录,就是有多少个版本了
git reset --hard asdfooiusdfsdfadf     #恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改 回滚
git reflog       #查看历史版本
git stash        #将当前工作区修改过的的代码暂存到别的地方

18

 

1

git init     #初始化

2

git config --global user.email "邮箱"     #创建邮箱

3

git config --global user.name  "用户名"   #创建用户名

4

'''

5

每次修改要提交都要先进行 git add . 将工作文件提交到本地,然后在创建版本

6

'''

7

git add '文件名'   #将工作文件修改提交到本地暂存区 .表示当前目录的所有文件

8

git commit -m '版本名称'         #   创建版本

9

10

git status         #查看文件的修改部分

11

git log       #查看该文件每次的提交记录,就是有多少个版本了

12

git reset --hard asdfooiusdfsdfadf     #恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改 回滚

13

git reflog       #查看历史版本

14

git stash        #将当前工作区修改过的的代码暂存到别的地方

15

16

17

18

Git是一个免费、开源的版本控制软件

详情请看:发行说明。

基本操作

2、什么是版本控制系统?

文章转载自:开源中国社区 []    

1、初始化

美高梅官方网站66159 1

git init 初始化 ,会把版本的内容全都放在.git文件里面,这个文件是隐藏的

美高梅官方网站66159 2

版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。

2、创建用户名和邮箱

git config --global user.email "邮箱"    #创建邮箱
git config --global user.name  "用户名"  #创建用户名

2

 

1

git config --global user.email "邮箱"    #创建邮箱

2

git config --global user.name  "用户名"  #创建用户名
  • 系统具体功能

3、提交到本地

git add '文件名'

1

 

1

git add '文件名'

    记录文件的所有历史变化

4、创建版本

git commit -m '版本名称'

1

 

1

git commit -m '版本名称'

    随时可恢复到任何一个历史状态

5、查看提交版本

git log

1

 

1

git log

美高梅官方网站66159 3

    多人协作开发或修改

6、回滚到上一个版本

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2                       (master)
$ git reset --hard 2647cf3021d8bb28eb9298e7e6cc9de980f14305
HEAD is now at 2647cf3 初次版本上线

4

 

1

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2                       (master)

2

$ git reset --hard 2647cf3021d8bb28eb9298e7e6cc9de980f14305

3

HEAD is now at 2647cf3 初次版本上线

4

然后查看文件,发现还原了

美高梅官方网站66159 4

    错误恢复

7、在回滚回去

#git reflog      查看历史版本因为git log只能查看当前文件有的版本


root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git reflog
2647cf3 (HEAD -> master) HEAD@{0}: reset: moving to 2647cf3021d8bb28eb9298e7e6cc9de980f14305
cab3731 HEAD@{1}: commit: 欧美上线
abba122 HEAD@{2}: commit: 欧美上线
2647cf3 (HEAD -> master) HEAD@{3}: commit (initial): 初次版本上线

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git reset --hard abba122               #这个需要版本号就版本最前面的那个
HEAD is now at abba122 欧美上线

14

 

1

#git reflog      查看历史版本因为git log只能查看当前文件有的版本

2

3

4

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

5

$ git reflog

6

2647cf3 (HEAD -> master) HEAD@{0}: reset: moving to 2647cf3021d8bb28eb9298e7e6cc9de980f14305

7

cab3731 HEAD@{1}: commit: 欧美上线

8

abba122 HEAD@{2}: commit: 欧美上线

9

2647cf3 (HEAD -> master) HEAD@{3}: commit (initial): 初次版本上线

10

11

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

12

$ git reset --hard abba122               #这个需要版本号就版本最前面的那个

13

HEAD is now at abba122 欧美上线

14

可以看到已经回滚到最初位置了

美高梅官方网站66159 5

版本控制的工具:

bug修复的两种方式

如果在线上出现紧急bug,需要紧急修复bug,有两种解决在git上解决bug的方式

1

 

1

  - svn

1、解决方式一(stash)

     git stash 将当前工作区的修改过的代码暂存到某个地方中

                    按照原来代码继续开发...
                    git add .
                    git commit -m '修改完成'

                    git stash               将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未 修改过的状态
                    git stash list          查看“某个地方”存储的所有记录
                    git stash clear         清空“某个地方”
                    git stash pop            将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
                    git stash apply  编号    将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) 
                    git stash drop  编号    ,删除指定编号的记录

13

 

1

        git stash 将当前工作区的修改过的代码暂存到某个地方中

2

3

                    按照原来代码继续开发...

4

                    git add .

5

                    git commit -m '修改完成'

6

7

                    git stash               将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未 修改过的状态

8

                    git stash list          查看“某个地方”存储的所有记录

9

                    git stash clear         清空“某个地方”

10

                    git stash pop            将第一个记录从“某个地方”重新拿到工作区(可能有冲突)

11

                    git stash apply  编号    将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) 

12

                    git stash drop  编号    ,删除指定编号的记录

13

#git stash
#将当前工作区的修改保存到别的地方
root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git stash
Saved working directory and index state WIP on master: abba122 欧美上线

 #然后按照原来的代码继续开发和修复bug
root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2              (master)
$ git add .

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2              (master)
$ git commit -m '紧急修复bug完成'
[master 56cfd59] 紧急修复bug完成
 1 file changed, 1 deletion(-)
#修改完bug进行代码合并
root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2              (master)
$ git stash pop
Auto-merging templates/login.html
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   templates/login.html

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (d3a80ee5e9f6f298eb8e234d4bd1452db669a7c7)

'''
****注意    
git stash pop
    -如果不产生冲突则继续开发
    -产生冲突,需要手动去解决
'''

34

 

1

#git stash

2

#将当前工作区的修改保存到别的地方

3

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

4

$ git stash

5

Saved working directory and index state WIP on master: abba122 欧美上线

6

    

7

 #然后按照原来的代码继续开发和修复bug

8

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2              (master)

9

$ git add .

10

11

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2              (master)

12

$ git commit -m '紧急修复bug完成'

13

[master 56cfd59] 紧急修复bug完成

14

 1 file changed, 1 deletion(-)

15

#修改完bug进行代码合并

16

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2              (master)

17

$ git stash pop

18

Auto-merging templates/login.html

19

On branch master

20

Changes not staged for commit:

21

  (use "git add <file>..." to update what will be committed)

22

  (use "git checkout -- <file>..." to discard changes in working directory)

23

24

        modified:   templates/login.html

25

26

no changes added to commit (use "git add" and/or "git commit -a")

27

Dropped refs/stash@{0} (d3a80ee5e9f6f298eb8e234d4bd1452db669a7c7)

28

29

'''

30

****注意    

31

git stash pop

32

    -如果不产生冲突则继续开发

33

    -产生冲突,需要手动去解决

34

'''

  - git  :软件帮助使用者进行版本的管理

手动解决冲突

3、什么是Github

1、解决方式二(分支)

分为三个部分

创建两个分支

git branch dev        #创建分支
git checkout dev      #移动到分支
git branch -d dev     #删除分支
git merge dev          #分支合并

4

 

1

git branch dev        #创建分支

2

git checkout dev      #移动到分支

3

git branch -d dev     #删除分支

4

git merge dev          #分支合并

美高梅官方网站66159 6

bug修复流程

修复Bug流程:
                        git branch dev 
                        git checkout dev 

                        # 写代码
                        git add .
                        git commit -m 'xxx'

                        git checkout master 
                        git branch bug 
                        git chekcout bug 

                        # 修复bug 
                        git add .
                        git commit -m '紧急修复bug'

                        git checkout master 
                        git merge bug 

                        git branch -d bug 

                        git checkout dev 
                        # 继续开发





root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git branch dev

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git branch bug

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git checkout dev
Switched to branch 'dev'
M       templates/login.html

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)
$ ls
app01/  db.sqlite3  manage.py*  questionnaire2/  templates/

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)
$ ls
a.py  app01/  db.sqlite3  manage.py*  questionnaire2/  templates/

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)
$ git add .

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)
$ git commit -m '添加功能'
[dev e906090] 添加功能
 2 files changed, 7 insertions(+), 1 deletion(-)
 create mode 100644 a.py

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)
$ git checkout master
Switched to branch 'master'

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git chekout bug
git: 'chekout' is not a git command. See 'git --help'.

The most similar command is
        checkout

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git checkout bug
Switched to branch 'bug'

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (bug)
$ git add .

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (bug)
$ git commit -m '紧急修复bug'
[bug 2b11e1e] 紧急修复bug
 1 file changed, 1 insertion(+), 1 deletion(-)

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (bug)
$ git checkout master
Switched to branch 'master'

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git merge bug
Updating 53ea14b..2b11e1e
Fast-forward
 templates/login.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git branch -d bug
Deleted branch bug (was 2b11e1e).

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git checkout dev
Switched to branch 'dev'

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)
$ git add .

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)
$ git commit -m '功能添加完成'
[dev ea8c420] 功能添加完成
 1 file changed, 1 insertion(+), 1 deletion(-)

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)
$ git checkout master
Switched to branch 'master'

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)
$ git merge dev
Auto-merging templates/login.html
Merge made by the 'recursive' strategy.
 a.py                 | 1 +
 templates/login.html | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)
 create mode 100644 a.py

119

 

1

修复Bug流程:

2

                        git branch dev 

3

                        git checkout dev 

4

5

                        # 写代码

6

                        git add .

7

                        git commit -m 'xxx'

8

9

                        git checkout master 

10

                        git branch bug 

11

                        git chekcout bug 

12

13

                        # 修复bug 

14

                        git add .

15

                        git commit -m '紧急修复bug'

16

17

                        git checkout master 

18

                        git merge bug 

19

20

                        git branch -d bug 

21

22

                        git checkout dev 

23

                        # 继续开发

24

                        

25

                        

26

                        

27

28

29

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

30

$ git branch dev

31

32

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

33

$ git branch bug

34

35

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

36

$ git checkout dev

37

Switched to branch 'dev'

38

M       templates/login.html

39

40

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)

41

$ ls

42

app01/  db.sqlite3  manage.py*  questionnaire2/  templates/

43

44

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)

45

$ ls

46

a.py  app01/  db.sqlite3  manage.py*  questionnaire2/  templates/

47

48

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)

49

$ git add .

50

51

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)

52

$ git commit -m '添加功能'

53

[dev e906090] 添加功能

54

 2 files changed, 7 insertions(+), 1 deletion(-)

55

 create mode 100644 a.py

56

57

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)

58

$ git checkout master

59

Switched to branch 'master'

60

61

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

62

$ git chekout bug

63

git: 'chekout' is not a git command. See 'git --help'.

64

65

The most similar command is

66

        checkout

67

68

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

69

$ git checkout bug

70

Switched to branch 'bug'

71

72

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (bug)

73

$ git add .

74

75

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (bug)

76

$ git commit -m '紧急修复bug'

77

[bug 2b11e1e] 紧急修复bug

78

 1 file changed, 1 insertion(+), 1 deletion(-)

79

80

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (bug)

81

$ git checkout master

82

Switched to branch 'master'

83

84

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

85

$ git merge bug

86

Updating 53ea14b..2b11e1e

87

Fast-forward

88

 templates/login.html | 2 +-

89

 1 file changed, 1 insertion(+), 1 deletion(-)

90

91

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

92

$ git branch -d bug

93

Deleted branch bug (was 2b11e1e).

94

95

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

96

$ git checkout dev

97

Switched to branch 'dev'

98

99

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)

100

$ git add .

101

102

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)

103

$ git commit -m '功能添加完成'

104

[dev ea8c420] 功能添加完成

105

 1 file changed, 1 insertion(+), 1 deletion(-)

106

107

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev)

108

$ git checkout master

109

Switched to branch 'master'

110

111

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (master)

112

$ git merge dev

113

Auto-merging templates/login.html

114

Merge made by the 'recursive' strategy.

115

 a.py                 | 1 +

116

 templates/login.html | 7 ++++++-

117

 2 files changed, 7 insertions(+), 1 deletion(-)

118

 create mode 100644 a.py

119

Github是全球最大的社交编程及代码托管网站(

将代码放入云端

当需要在家里和公司进行开发或者需要进行协同开发的时候需要将代码放到云端

云端需求一个存放代码的地方:
                    公共:
                        - github,做代码托管
                        - 码云,做代码托管
                        - csdn code,做代码托管
                    内部搭建:
                        - gitlab

7

 

1

云端需求一个存放代码的地方:

2

                    公共:

3

                        - github,做代码托管

4

                        - 码云,做代码托管

5

                        - csdn code,做代码托管

6

                    内部搭建:

7

                        - gitlab

美高梅官方网站66159 7

家里

git remote add origin https://github.com/Yang3714/dog.git      #添加仓库源
git push -u origin master          #推送
git checkout dev
git push origin dev               

4

 

1

git remote add origin https://github.com/Yang3714/dog.git      #添加仓库源

2

git push -u origin master          #推送

3

git checkout dev

4

git push origin dev               

美高梅官方网站66159 8

发现一个错误

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev1)
$ git remote add origin https://github.com/Yang3714/dog.git
fatal: remote origin already exists.
    '''
    ****报错    远程仓库已存在
    '''

7

 

1

root@DESKTOP-KAF6465 MINGW64 /F/python/python开发django/2017-12-4/questionnaire2 (dev1)

2

$ git remote add origin https://github.com/Yang3714/dog.git

3

fatal: remote origin already exists.

4

    '''

5

    ****报错    远程仓库已存在

6

    '''

7

解决办法:

$ git remote rm origin          #先删除远程的仓库源

$ git remote add origin https://github.com/Yang3714/dog.git     #然后在添加

7

 

1

$ git remote rm origin          #先删除远程的仓库源

2

3

$ git remote add origin https://github.com/Yang3714/dog.git     #然后在添加

4

    

5

6

7

输入github的密码

美高梅官方网站66159 9

在公司下载

$ git clone https://github.com/Yang3714/yang.git
$ cd yang/
$ git checkout dev
$ git add .
$ git commit -m '公司代码'
$ git pull origin dev

8

 

1

$ git clone https://github.com/Yang3714/yang.git

2

$ cd yang/

3

$ git checkout dev

4

$ git add .

5

$ git commit -m '公司代码'

6

$ git pull origin dev

7

8

注意问题:

Github可以托管各种git库,并提供一个web界面(用户名.github.io/仓库名)

协同开发

4、 Github和Git是什么关系

Git是版本控制软件

Github是项目代码托管的平台,借助git来管理项目代码

二、使用Git

一个创业者的故事:

项目背景:这个创业者想开发一个资源共享的系统

阶段一:顺利上线代码

首先在你创建的项目的文件夹里面右键--->点击Gir Bash Here---->吧git运行起来。

1、初始化:git   init

2、如果你第一次使用git的时候,需要配置一下。如果你已经配置了,以后就不用配置了

美高梅官方网站66159 10

3、吧当前的目录以及及所有的子文件添加到git:git add .    #所有的文件

                            git templates/index.html   #具体添加的文件

4、真实的吧数据提交上线:git commit -m "描述信息"

5、查看状态,看那个是否被修改过:git status

一定记得先add,后commit,add之后是没有放到版本里的,只有commit的时候才有版本

6、查看有几个版本:查看版本提交记录   :git log  

7、回滚到上一个版本:git   reset --hard   版本号

美高梅官方网站66159 11没一次生成的时候commit后面都会随机的生成版本号

8、再跳回去(查看往后的版本号):git reflog 

美高梅官方网站66159 12

Git把管理的文件分为了两个区域四个状态。

美高梅官方网站66159 13

add到暂存状态的时候成绿色了,在commit的时候就没有了

提供了这个回滚的功能。

美高梅官方网站66159 14

阶段二:当开发到一半的时候出现bug,修复bug

  - 开发直播功能(预计一周开发完成)

当项目开发到一半的时候,出现bug了怎么办? 

解决思路:把我们的代码变成没开发之前的代码,改完bug再提交。先把你当前开发的代码拿走,找个地方先存起来。

那么怎么做呢?

方案一:修复bug:stash

stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。

 特别的:执行 git stash pop 命令时,可能会遇到冲突,因为在紧急修复bug的代码和通过stash存储在“某个地方”的代码会有重合部分,所以执行 git stash pop 时候就会出现冲突,有冲突解决冲突即可。

美高梅官方网站66159 15

stash相关常用命令:

  • git stash             将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
  • git stash list        查看“某个地方”存储的所有记录
  • git stash clear     清空“某个地方”
  • git stash pop       将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
  • git stash apply     编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) 
  • git stash drop      编号,删除指定编号的记录

当你新开发的代码和你修复的代码发生冲突的时候就手动解决冲突。

方案二:修复bug:利用分支(推荐)

默认会有一个master的分支。只做线上的版本,注意不要在master分支上修改,要修改的话就创建一个bug分支

1、创建一个修复bug的分支:git  branch  bug   ,这个bug分支是在master分支上建的,相当于拷贝了一份

2、查看一共有几个分支 :  git  branch

3、跳转到bug分支:git  checkout  bug

4、跳转到master分支:git branch master 

5、创建一个修复bug的分支:git  branch  dev    #只做开发的版本

现在就有三个分支了,每个分支都是不一样的,bug修复完了,现在就要合并在master上了。

6、master和bug分支合并:git mare bug  

7、删除bug分支:git branch -d bug

8、继续开发,切到dev:git  branch  dev

9、开发完毕,master和dev合并:git marge dev 

切换之前一定记得把你的代码提交一下。

合并的时候可能出现冲突,可能不出现,出现冲突了就得手动解决

修复Bug流程:
    git branch dev 
    git checkout dev 

    # 写代码
    git add .
    git commit -m 'xxx'

    git checkout master   
    git branch bug 
    git chekcout bug 

    # 修复bug 
    git add .
    git commit -m '紧急修复bug'

    git checkout master 
    git merge bug 

    git branch -d bug 

    git checkout dev 
    # 继续开发

阶段三: 两个地方办公

云端需要一个存放代码的地方用Github

  公共的

     - Github是用来做代码托管的

     - 码云,做代码托管

     - csdn code ,做代码托管

  内部搭建:

     - gitlab

1、登录Github

在家里:

美高梅官方网站66159 16

美高梅官方网站66159 17

创建完成以后

美高梅官方网站66159 18

就会有这样一个地址,我们就可以用这个地址来提交

美高梅官方网站66159 19

下面是正在往远程推送,完了登录上去就会有mester分支了。

 美高梅官方网站66159 20

当然我们也可以吧dev也推送过来,和上面一样的方式。

在公司:

 克隆

美高梅官方网站66159 21

美高梅官方网站66159 22

克隆的时候只是把master分支克隆了,其他的怎么拿呢?

用 git pull origin dev   #拿到远程的dev

创建目录

美高梅官方网站66159 23

美高梅官方网站66159 24

                家里:

                    git add .
                    git commit -m 'xx'

                    git remote add origin https://github.com/WuPeiqi/greenlu.git

                    git push origin master 

                公司:

                    # 新公司第一次获取代码
                        方式一
                        git clone https://github.com/WuPeiqi/greenlu.git

                        方式二
                        git init 
                        git remote add origin https://github.com/WuPeiqi/greenlu.git
                        git pull origin master 直接拿回来


                        方式三
                        git init 
                        git remote add origin https://github.com/WuPeiqi/greenlu.git
                        这的两句相当于git pull origin master 这一句
                        git fetch origin master  拿到分支上了
                        git merge origin/master  合并在一起

                    # 日后
                        git pull origin master  #

                        或者
                        git fetch origin master 
                        git merge origin/master 



                    #   如果你在本地修改问题,又add,又提交,在线上去拿的时候,或许会冲突

 

 小应用:

vim a1.py #查看内容
cat a1.py #查看内容
当你在家的时候吧代码上线了。到了公司以后吧线上的代码拉回来。git pull origin dev
开始写代码了。
写完之后add commit。。。这时候忘了往github上提交了
回到家的时候,那今天写的代码没提交,怎么办呢?回公司太晚了,在写一遍浪费时间
,或许你还记着今天写的代码,就在这基础上又开发了,
这下提高了警记了,就记得提交了 add 、commit 、git push origin dev
第二天又到公司了,那昨天的代码怎么办呢、、?是拉下来呢?还是推上去呢?
如果你推上去的话,没有冲突还好,如果有冲突的话,那你把你的冲突都上线了,不让你提交,所以我们要先拉下来
先去吧代码拉下来,git pull origin dev 可能会有冲突,解决冲突。

 

1、分支(branch)

在git中,分支操作则是每个开发人员日常工作流。利用git的分支,可以非常方便地进行开发和测试。

我们为git定下一种分支模型,在这种模型中,分支有两类,五种:

永久性分支
    master branch:主分支
    develop branch:开发分支
临时性分支
    feature branch:功能分支
        review branch:检查分支 (老大来进行检查)
        开发者分支(每个开发者一个分支)
            aa
            bb
            cc
            dd  
    bug branch:bug修复分支



x

10

 

1

永久性分支

2

    master branch:主分支

3

    develop branch:开发分支

4

临时性分支

5

    feature branch:功能分支

6

        review branch:检查分支 (老大来进行检查)

7

        开发者分支(每个开发者一个分支)

8

            aa

9

            bb

10

            cc

11

            dd  

12

    bug branch:bug修复分支

13

    

14

    

master:主分支从项目一开始便存在,它用于存放经过测试,已经完全稳定代码;在项目开发以后的任何时刻当中,master存放的代码应该是可作为产品供用户使用的代码。每一次master更新的时候都应该用git打上tag,说明你的产品有新版本发布了。

develop:开发分支,一开始从master分支中分离出来,用于开发者存放基本稳定代码。开发者把功能做好以后,是存放到自己的develop中,当测试完以后,可以向管理者发起一个pull request,请求把自己仓库的develop分支合并到源仓库的develop中。

归纳:所有开发者开发好的功能会在源仓库的develop分支中进行汇总,当develop中的代码经过不断的测试,已经逐渐趋于稳定了,接近产品目标了。这时候,我们就可以把develop分支合并到master分支中,发布一个新版本。

 

feature:功能性分支,是用于开发项目的功能的分支,是开发者主要战斗阵地。开发者在本地仓库从develop分支分出功能分支,在该分支上进行功能的开发,开发完成以后再合并到develop分支上,这时候功能性分支已经完成任务,可以删除。功能性分支的命名一般为feature-*,*为需要开发的功能的名称。

bug:修复bug分支,当产品已经发布了,突然出现了重大的bug。这时候就要新建一个bug分支,继续紧急的bug修复工作,当bug修复完以后,把该分支合并到master和develop以后,就可以把该分支删除。修复bug分支命名一般为hotfix-*。

 

2、fork

通过搜索到别人的开源项目然后进行fork可以下载到自己项目中来,来进行修改然后将问题反馈给作者,这也是一种交流技术的方式

美高梅官方网站66159 25

免密登陆

在工作环境中,我们时常需要在github上进行push、pull操作这些操作都需要进行用户名和密码登陆,实在操作太冗余了,需要很多次的登陆所以我看了github可以进行ssh秘钥登陆,这样在工作中就不需要登陆了,我们一起来操作吧。

第一步

美高梅官方网站66159 26

第一步

创建秘钥

1、 #查看用户名和密码
root@DESKTOP-KAF6465 MINGW64 /f/python/python开发django/2017-12-6/yang (master)
$ git config --global user.name                                
Yang

root@DESKTOP-KAF6465 MINGW64 /f/python/python开发django/2017-12-6/yang (master)
$ git config --global user.email
yang@wudi.com
2、#创建秘钥
root@DESKTOP-KAF6465 MINGW64 /f/python/python开发django/2017-12-6/yang (master)
$ ssh-keygen -t rsa -C "yang@wudi.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/root/.ssh/id_rsa):    #回车三次表示空密码
Created directory '/c/Users/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/root/.ssh/id_rsa.
Your public key has been saved in /c/Users/root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:IAJz00ZY68kwukdZyCRiIAnpVMNWhFuNu81eUF7xh3U yang@wudi.com
The key's randomart image is:
+---[RSA 2048]----+
|@+*B*oo    ..  .E|
|*O.*++ . . .. o .|
|o B.* o o .  o . |
| o X + o .    .  |
|. o + + S        |
| o   . o .       |
|. .   . .        |
| .     .         |
|                 |
+----[SHA256]-----+
3、#进入到~/.ssh进得去表示创建成功
root@DESKTOP-KAF6465 MINGW64 /f/python/python开发django/2017-12-6/yang (master)
$ cd ~/.ssh

4、#看到id_rsa.pub
root@DESKTOP-KAF6465 MINGW64 ~/.ssh
$ ls
id_rsa  id_rsa.pub

5、#查看id_rsa.pub就是这个文件里面的秘钥复制到github上
root@DESKTOP-KAF6465 MINGW64 ~/.ssh
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxP+g9ooC5wtx63gf0kf6R6wQrWYIHe+c6g4L4hTPp4cy06xRGHyX67JSXtidg03MwL1MFUVF3WL2t9yR7OH1XaxwZXpwfQTyF+fPZxShBL2WHweO8V9/qHUdcIzIRrGkpdmUyllGCGYxyw4gKc3TwDswSn+T6y0DyaDV204BFHicXRSET/9uRvVcDO3WBq6oFUr4H4BnNl3XA6ljCjfIDue4OwApyTdL7whNhW703yaTHP3coibGqAfXR+3VzbeCKUMvw0s8ugkLw55UYzpQxqA/FKGvgKkK51e3XDOtbUPip8m3QNRrp8i9srFbEyo5oX4YtPjr9q2VHRl2KOC+z yang@wudi.com

x

 

1

1、 #查看用户名和密码

2

root@DESKTOP-KAF6465 MINGW64 /f/python/python开发django/2017-12-6/yang (master)

3

$ git config --global user.name                                

4

Yang

5

6

root@DESKTOP-KAF6465 MINGW64 /f/python/python开发django/2017-12-6/yang (master)

7

$ git config --global user.email

8

yang@wudi.com

9

2、#创建秘钥

10

root@DESKTOP-KAF6465 MINGW64 /f/python/python开发django/2017-12-6/yang (master)

11

$ ssh-keygen -t rsa -C "yang@wudi.com"

12

Generating public/private rsa key pair.

13

Enter file in which to save the key (/c/Users/root/.ssh/id_rsa):    #回车三次表示空密码

14

Created directory '/c/Users/root/.ssh'.

15

Enter passphrase (empty for no passphrase):

16

Enter same passphrase again:

17

Your identification has been saved in /c/Users/root/.ssh/id_rsa.

18

Your public key has been saved in /c/Users/root/.ssh/id_rsa.pub.

19

The key fingerprint is:

20

SHA256:IAJz00ZY68kwukdZyCRiIAnpVMNWhFuNu81eUF7xh3U yang@wudi.com

21

The key's randomart image is:

22

+---[RSA 2048]----+

23

|@+*B*oo    ..  .E|

24

|*O.*++ . . .. o .|

25

|o B.* o o .  o . |

26

| o X + o .    .  |

27

|. o + + S        |

28

| o   . o .       |

29

|. .   . .        |

30

| .     .         |

31

|                 |

32

+----[SHA256]-----+

33

3、#进入到~/.ssh进得去表示创建成功

34

root@DESKTOP-KAF6465 MINGW64 /f/python/python开发django/2017-12-6/yang (master)

35

$ cd ~/.ssh

美高梅官方网站66159,36

37

4、#看到id_rsa.pub

38

root@DESKTOP-KAF6465 MINGW64 ~/.ssh

39

$ ls

40

id_rsa  id_rsa.pub

41

42

5、#查看id_rsa.pub就是这个文件里面的秘钥复制到github上

43

root@DESKTOP-KAF6465 MINGW64 ~/.ssh

44

$ cat id_rsa.pub

45

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxP+g9ooC5wtx63gf0kf6R6wQrWYIHe+c6g4L4hTPp4cy06xRGHyX67JSXtidg03MwL1MFUVF3WL2t9yR7OH1XaxwZXpwfQTyF+fPZxShBL2WHweO8V9/qHUdcIzIRrGkpdmUyllGCGYxyw4gKc3TwDswSn+T6y0DyaDV204BFHicXRSET/9uRvVcDO3WBq6oFUr4H4BnNl3XA6ljCjfIDue4OwApyTdL7whNhW703yaTHP3coibGqAfXR+3VzbeCKUMvw0s8ugkLw55UYzpQxqA/FKGvgKkK51e3XDOtbUPip8m3QNRrp8i9srFbEyo5oX4YtPjr9q2VHRl2KOC+z yang@wudi.com

46

47

第二步

github配置

1、settings配置

美高梅官方网站66159 27

2、创建秘钥

美高梅官方网站66159 28

3、将从git复制的私钥放进去

美高梅官方网站66159 29

4、选择方式

美高梅官方网站66159 30

5、然后在git上选择ssh方式

$ git remote add origin git@github.com:Yang3714/yang.git

1

 

1

$ git remote add origin git@github.com:Yang3714/yang.git

2

来自为知笔记(Wiz)

下一篇:没有了

更多新闻推荐

Copyright © 2015-2019 http://www.77zhth.net. 美高梅官方网站66159有限公司 版权所有