240      
    Alex   
  
    每个人都有属于自己的一片森林,也许我们从来不曾去过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢!   

git和github

 

Git

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

版本控制工具

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

 
 
 

基本方法

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

 
 
 

基本操作

 

1、初始化

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

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
 
 
 

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

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

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

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

bug修复的两种方式

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

 
 
 

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
'''
 
 

手动解决冲突

 
 
 

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          #分支合并
 
 
 
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,做代码托管
                        - 码云,做代码托管
                        - csdn code,做代码托管
                    内部搭建:
                        - gitlab
 
 
 
7
 
 
 
 
 
1
云端需求一个存放代码的地方:
2
                    公共:
3
                        - github,做代码托管
4
                        - 码云,做代码托管
5
                        - csdn code,做代码托管
6
                    内部搭建:
7
                        - gitlab
 
 
 
 
 
 
 
家里
 
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               
 
 
 
 
发现一个错误
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的密码
 
在公司下载
$ 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

 
 
注意问题:
 
 
 
 
 
 
 
 

协同开发

 

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可以下载到自己项目中来,来进行修改然后将问题反馈给作者,这也是一种交流技术的方式

 
 

免密登陆

在工作环境中,我们时常需要在github上进行push、pull操作这些操作都需要进行用户名和密码登陆,实在操作太冗余了,需要很多次的登陆所以我看了github可以进行ssh秘钥登陆,这样在工作中就不需要登陆了,我们一起来操作吧。
第一步
 
第一步
创建秘钥
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
 
 
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配置
 
 
2、创建秘钥
 
3、将从git复制的私钥放进去
 
 
4、选择方式
 
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_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





posted @ 2017-12-10 16:31  Alex_c  阅读(408)  评论(0)    收藏  举报