欢迎来访我的博客。

Github的使用

其他 小张哥哥 809浏览 3评论

使用Git,我们需要一个中央服务器。我们可以直接搭建一个,也可以使用Github。Github是目前最流行的Git托管库,个人开发者和企业都存放了大量的开源代码在这个托盘平台。


网站注册

要想使用Github,我们首先需要访问 https://github.com/ 网站注册一个个人账号。
sign_up_github.png


1. 创建仓库

与我们直接通过git命令在本地创建一个仓库不同。在登陆之后我们可以直接点击create创建一个Respository,创建页面如下:

github_create_respository.png

填写我们的仓库名,描述信息(可选),以及代码是公开还是隐私(指定人看到,该功能收费);
还可以选择勾选'Initialize this repository with a README'自动帮我们添加一个README文件。
还可以选择忽略文件,比如我们在使用python开发时,希望Git能帮我们忽略.pyc等文件的改动;
我们还可以选择自动添加license文件,然后我就可以看到,Github帮我们自动创建的仓库


2. 添加ssh账户

如果我们需要我们的本地电脑和github上的仓库进行交互,那么我们就要把这台机器的ssh公钥添加到这个github账户上。
我们通过在Settings -> SSH and GPR keys点击“New SSH key”添加一个ssh key。

github_ssh_settings_2.png

我们填写一个标题,然后我们在本地电脑上查看我们的公钥

在shell中,我们回到home目录,打开编辑.gitconfig查看一下我们的用户名和密码,如果需要修改就修改一下。


zcw@zcw:~$ cat .gitconfig[user]
	name = zcw
	email = email@example.com

然后,我们输入命令ssh-keygen -t rsa -C


zcw@zcw:~$ ssh-keygen -t rsa -C 'email@example.com' Generating public/private rsa key pair.
Enter file in which to save the key (/home/zcw/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/zcw/.ssh/id_rsa.
Your public key has been saved in /home/zcw/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa email@example.com
The key's randomart image is:
+---[RSA 2048]----+|     .+  o+++o.  ||     oBo ..o..   ||      o . o o    ||       + . o     ||      . B .      ||      .* S       ||     . +/ o      ||      =X+B o     ||     .o=@B=      |+----[SHA256]-----+

然后,我们进入到.ssh目录就能看到生成的密钥


zcw@zcw:~$ cd .ssh
zcw@zcw:~/.ssh$ lsid_rsa  id_rsa.pub

其中id_rsa是我们的私钥,id_rsa.pub是公钥。
我们把id_rsa_pub中的内容复制到我们创建ssh key下,点击Add SSH key即可。


github_create_ssh_key.png

克隆项目

在完成上述工作之后,我们就可以将Github上的项目克隆到本地进行开发。
首先,我们需要找到项目的克隆地址。
我们进入到刚才我们新建的仓库,点击Clone or download即可看到克隆地址,这里我们选择Use SSH.

复制该克隆地址到我们本地的计算机上,输入命令git clone将项目克隆到我们本地。


zcw@zcw:~/test$ git clone git@github.com:zhangcw/test.git
Cloning into 'test'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (5/5), 13.15 KiB | 6.58 MiB/s, done.

进入到test目录下,我们即可看到远程仓库代码被克隆到了本地


zcw@zcw:~/test$ cd test/
zcw@zcw:~/test/test$ ls -al
total 56
drwxr-xr-x 3 zcw zcw  4096 6月  27 17:29 .
drwxr-xr-x 4 zcw zcw  4096 6月  27 17:29 ..
drwxr-xr-x 8 zcw zcw  4096 6月  27 17:29 .git
-rw-r--r-- 1 zcw zcw  1203 6月  27 17:29 .gitignore
-rw-r--r-- 1 zcw zcw 35149 6月  27 17:29 LICENSE
-rw-r--r-- 1 zcw zcw     6 6月  27 17:29 README.md

使用git status命令查看状态


zcw@zcw:~/test/test$ git status
On branch master
Your branch is up to date with 'origin/master'.nothing to commit, working tree clean

显示本地仓库版本的代码与远程一致


推送分支到github

在本地开发过程中,我们需要新建一个分支进行开发


zcw@zcw:~/test/test$ git checkout -b dev
Switched to a new branch 'dev'zcw@zcw:~/test/test$ git branch
* dev
  master
zcw@zcw:~/test/test$ lsLICENSE  README.md
zcw@zcw:~/test/test$ vi test.py
zcw@zcw:~/test/test$ git status
On branch dev
Untracked files:  (use "git add <file>..." to include in what will be committed)

	test.py

nothing added to commit but untracked files present (use "git add" to track)
zcw@zcw:~/test/test$ git add test.py
zcw@zcw:~/test/test$ git commit -m '创建test.py文件'[dev eddaabc] 创建test.py文件
 1 file changed, 1 insertion(+)
 create mode 100644 test.py

如上,我们在dev分支下进行了开发并创建了一个新的版本,此时我们如果要把该分支推送到github上,我们此时就需要使用git push origin命令。


zcw@zcw:~/test/test$ git push origin dev
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 302 bytes | 302.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote: 
remote: Create a pull request for 'dev' on GitHub by visiting:
remote:      https://github.com/zhangcw/test/pull/new/dev
remote: 
To github.com:zhangcw/test.git
 * [new branch]      dev -> dev
zcw@zcw:~/test/test$ git status
On branch dev
nothing to commit, working tree clean

同时,推送之后,我们可以在github网站上找到我们推送过去的dev分支

github_push_branch.png


本地分支跟踪服务器分支

我们的本地开发分支dev,我们需要它跟踪远程的dev分支,此时我们就需要设置跟踪,命令如下:

此时我们再对本地的dev分支进行开发:


zcw@zcw:~/test/test$ vi test.py
zcw@zcw:~/test/test$ git add test.py
zcw@zcw:~/test/test$ git commit -m '编辑test.py文件'[dev 5d41180] 编辑test.py文件
 1 file changed, 1 insertion(+)

此时如果我们使用git status查看状态

zcw@zcw:~/test/test$ git status
On branch dev
nothing to commit, working tree clean

发现本地工作区是干净的。
如果我们需要检查本地和远程dev分支的区别,我们就需要设置跟踪,使用命令git branch --set-upstream-to=orign/origin_branch mybranch
如下:


zcw@zcw:~/test/test$ git branch --set-upstream-to=origin/dev dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.

此时,如果我们再使用git status查看项目状态可以发现:


zcw@zcw:~/test/test$ git status
On branch dev
Your branch is ahead of 'origin/dev' by 1 commit.  (use "git push" to publish your local commits)nothing to commit, working tree clean

此时提示本地的dev分支领先远程的dev分支一个提交
然后,我们将本地的dev分支提交一下,此时已经设置了跟踪,我们就可以直接输入git push即可


zcw@zcw:~/test/test$ git push
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 297 bytes | 297.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:zhangcw/test.git
   eddaabc..5d41180  dev -> dev

此时再通过git status查看状态


zcw@zcw:~/test/test$ git status
On branch dev
Your branch is up to date with 'origin/dev'.nothing to commit, working tree clean

本地分支就和远程分支一致了。


从远处分支拉去代码

如果我们需要从远程分支拉去代码,可以直接使用git pull origin orign_branch命令。


zcw@zcw:~/test/test$ git pull origin dev
Warning: Permanently added the RSA host key for IP address '16.251.197.173' to the list of known hosts.
From github.com:zhangcw/test
 * branch            dev        -> FETCH_HEAD
Already up to date.
zcw@zcw:~/test/test$



转载请注明:禅思 » Github的使用?

喜欢 (0) or 分享 (0)

我的个人微信公众号,欢迎关注

扫码或搜索:Python后端开发Django

Python后端开发Django

微信公众号 扫一扫关注

结交朋友、一起学习,一起进步。

科波之主

QQ号 386046154 立即加入

添加微信,进行技术交流

专注技术交流, 一同成长进步

我的微信号

如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
    1. buy doxycycline 100mg buy doxycycline online - odering doxycycline
      WilliamPex 2021-06-21 02:45:11 回复
      • chloroquine phosphate aralen aralen for sale - buy chloroquine phosphate
        WilliamPex 2021-06-21 22:34:28 回复
        • buy chloroquine canada buy aralen - buy aralen
          WilliamPex 2021-06-22 17:42:20 回复