当前位置:   article > 正文

[Android开发] Git&GitHub基础知识_android github 知识

android github 知识

在之前的外企不可以上外网,所以一直没有写博客的习惯,如果进入了一家新公司管理不像以前那样严格,准备把自己的成长之路分享给大家,希望能够帮助那些想在程序员道路上有一番作为的年轻人。

言归张转,今天给大家分享一下Git&GitHub的基础知识。

Github作为一个开元平台,一个程序员尽早了解和使用它是大有裨益的。

基于Linux Ubuntu系统Git和GitHub的安装:

 

如果想查看Ubuntu版本可以使用以下命令:

cat /etc/issue

我使用的Ubuntu版本是:16.04.6

 

在Ubuntu上安装Git工具也很简单,只需要执行以下命令就可以了:

apt install git

 

使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用git config命令进行配置:

  1. [root@linuxidc ~]# git config --global user.name "linuxidc"
  2. [root@linuxidc ~]# git config --global user.email "linuxidc@linuxidc.com"

执行了上面的命令后,会在家目录(/root)下建立一个叫.gitconfig的文件(该文件为隐藏文件,需要使用ls -al查看到). 内容一般像下面这样,可以使用vim或cat查看文件内容:

  1. [root@linuxidc ~]# cat .gitconfig
  2. [user]
  3. name = linuxidc
  4. email = linuxidc@linuxidc.com

上面的配置文件就是Git全局配置的文件,一般配置方法是git config --global <配置名称> <配置的值>

如果你想使项目里的某个值与前面的全局设置有区别(例如把私人邮箱地址改为工作邮箱),你可以在项目中使用git config命令不带--global选项来设置. 这会在你当前的项目目录下创建.git/config,从而使用针对当前项目的配置。

配置GitHub

注册GitHub

后续有时间另写一篇教程,这里不在赘述...

配置Git

  • 在本地创建ssh key:
  1. Ubuntu@VM-0-26-ubuntu:~$ sudo ssh-keygen -t rsa -C "linuxidc@linuxidc.com"
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/root/.ssh/id_rsa):
  4. Created directory '/root/.ssh'.
  5. Enter passphrase (empty for no passphrase):
  6. Enter same passphrase again:
  7. Your identification has been saved in /root/.ssh/id_rsa.
  8. Your public key has been saved in /root/.ssh/id_rsa.pub.
  9. The key fingerprint is:
  10. SHA256:Ia1lou/M0ZNnLW6Dly9+Ws1kX89Uq5eF9wUBgFGChDA linuxidc@linuxidc.com
  11. The key's randomart image is:
  12. +---[RSA 2048]----+
  13. | E. o..o+o.... |
  14. | .. .... . |
  15. | o = . .|
  16. | . * . oo|
  17. | . . S +.*|
  18. | . . . . =.=B|
  19. | o +.+.o.oo=|
  20. | + ..=*o. . |
  21. | + ++*. |
  22. +----[SHA256]-----+

显示如上则表示创建成功。注意,上面命令中的邮箱"linuxidc@linuxidc.com"请更换为自己的邮箱,后面密钥设置密码,这里我无需设置,直接一路回车就行。

  • 设置成功会在 /root/ 下生成一个.ssh文件,因为要进入 /root 目录,所以需要转为root身份:
  1. ubuntu@VM-0-26-ubuntu:~$ sudo -s
  2. root@VM-0-26-ubuntu:~# cd /root
  3. root@VM-0-26-ubuntu:/root# cd .ssh/
  4. root@VM-0-26-ubuntu:/root/.ssh# ls -l
  5. total 8
  6. -rw------- 1 root root 1675 May 18 16:14 id_rsa
  7. -rw-r--r-- 1 root root 399 May 18 16:14 id_rsa.pub
  • 打开id_rsa.pub,复制里面的key
  • 然后粘贴至GitHub,Settings/SSH and GPG keys/New SSH key
  • 使用 ssh -T git@github.com 验证是否安装成功
  1. root@VM-0-26-ubuntu:~# ssh -T git@github.com
  2. The authenticity of host 'github.com (192.30.253.112)' can't be established.
  3. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
  4. Are you sure you want to continue connecting (yes/no)? yes
  5. Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
  6. Hi linuxidc! You've successfully authenticated, but GitHub does not provide shell access.

按提示输入yes,看到You've successfully authenticated, but GitHub does not provide shell access则表示连接成功。

获取一个Git仓库

既然我们现在把一切都设置好了,那么我们需要一个Git仓库。有两种方法可以得到它:一种是从已有的Git仓库中clone (克隆,复制);还有一种是新建一个仓库,把未进行版本控制的文件进行版本控制。

Clone一个仓库

  • 为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, git://. 有些仓库可以通过不只一种协议来访问。

  • 这里在我的GitHub上提供的一个名字为GitTest的仓库供大家测试的公有仓库,这个仓库可以使用下面方式进行clone:

  1. [root@linuxidc ~]# git clone https://github.com/linuxidc/GitTest.git
  2. 正克隆到 'GitTest'...
  3. remote: Counting objects: 6, done.
  4. remote: Compressing objects: 100% (5/5), done.
  5. remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
  6. Unpacking objects: 100% (6/6), done.
  • clone操作完成后,会发现当前目录下多了一个GitTest的文件夹,这个文件夹里的内容就是我们刚刚clone下来的代码。由于当前GitTest仅是测试项目,里面仅有README.md和LICENSE文件。
  1. [root@linuxidc ~]# cd GitTest/
  2. [root@linuxidc GitTest]# ls
  3. LICENSE README.md

初始化一个新仓库

可以对一个已存在的文件夹用下面的命令让它置于Git的版本控制管理之下。

  • 创建代码目录project:
  1. [root@linuxidc gitproject]# cd ~
  2. [root@linuxidc ~]# mkdir project
  • 进入到代码目录,创建并初始化Git仓库:
  1. [root@linuxidc ~]# cd project/
  2. [root@linuxidc project]# git init
  3. 初始化空的 Git 版本库于 /root/project/.git/

通过ls -la命令会发现project目录下会有一个名叫.git的目录被创建,这意味着一个仓库被初始化了。可以进入到.git目录查看下有哪些内容。

Git工作流程

git基本工作流程如下:

  1. 创建或修改文件
  2. 使用git add命令添加新创建或修改的文件到本地的缓存区(Index)
  3. 使用git commit命令提交到本地代码库
  4. (可选,有的时候并没有可以同步的远端代码库)使用git push命令将本地代码库同步到远端代码库
  • 进入我们刚才建立的project目录,分别创建文件file1,file2,file3
  1. [root@linuxidc ~]# cd project/
  2. [root@linuxidc project]# touch file1 file2 file3
  • 修改文件,可以使用vim编辑内容,也可以直接echo添加测试内容。
  1. [root@linuxidc project]# echo "test" >> file1
  2. [root@linuxidc project]# echo "test" >> file2
  3. [root@linuxidc project]# echo "test" >> file3
  • 此时可以使用git status命令查看当前git仓库的状态:
  1. [root@linuxidc project]# git status
  2. # 位于分支 master
  3. #
  4. # 初始提交
  5. #
  6. # 未跟踪的文件:
  7. # (使用 "git add <file>..." 以包含要提交的内容)
  8. #
  9. # file1
  10. # file2
  11. # file3
  12. 提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

可以发现,有三个文件处于未跟踪(untracked)状态,下一步我们就需要用git add命令将他们加入到缓存区(Index)。

  • 使用git add命令将新建的文件添加到:
[root@linuxidc project]# git add file1 file2 file3
  • 然后再次执行git status就会发现新的变化:
  1. [root@linuxidc project]# git status
  2. # 位于分支 master
  3. #
  4. # 初始提交
  5. #
  6. # 要提交的变更:
  7. # (使用 "git rm --cached <file>..." 撤出暂存区)
  8. #
  9. # 新文件: file1
  10. # 新文件: file2
  11. # 新文件: file3
  12. #
  • 你现在为commit做好了准备,你可以使用 git diff 命令再加上 --cached 参数,看看缓存区中哪些文件被修改了。
[root@linuxidc project]# git diff --cached

如果没有--cached参数,git diff 会显示当前你所有已做的但没有加入到索引里的修改。

如果你要做进一步的修改, 那就继续做, 做完后就把新修改的文件加入到缓存区中。

  • 当所有新建,修改的文件都被添加到了缓存区,我们就要使用git commit提交到本地仓库:
  1. [root@linuxidc project]# git commit -m "add 3 files"
  2. [master(根提交) bbb9a52] add 3 files
  3. 3 files changed, 3 insertions(+)
  4. create mode 100644 file1
  5. create mode 100644 file2
  6. create mode 100644 file3

需要使用-m添加本次修改的注释,完成后就会记录一个新的项目版本。

  • 除了用git add命令,我们还可以用下面的命令将所有没有加到缓存区的修改也一起提交,但-a命令不会添加新建的文件。
$ git commit -a -m "add 3 files"

再次输入git status查看状态,会发现当前的代码库已经没有待提交的文件了,缓存区已经被清空。

至此,我们完成了第一次代码提交,这次提交的代码中我们创建了三个新文件。需要注意的是如果是修改文件,也需要使用git add命令添加到缓存区才可以提交。如果是删除文件,则直接使用git rm命令删除后会自动将已删除文件的信息添加到缓存区,git commit提交后就会将本地仓库中的对应文件删除。

为你的项目添加一个新的远程仓库

本地仓库是创建完成了,现在需要与远程的仓库进行链接。

  1. [root@linuxidc project]# git remote
  2. [root@linuxidc project]# git remote add origin git@github.com:linuxidc/project.git
  3. [root@linuxidc project]# git remote -v
  4. origin git@github.com:linuxidc/project.git (fetch)
  5. origin git@github.com:linuxidc/project.git (push)

推送到远程仓库

这个时候如果本地的仓库连接到了远程Git服务器,可以使用下面的命令将本地仓库同步到远端服务器:(注意,需要与远程仓库连接)

  1. [root@linuxidc project]# git push -u origin master
  2. Warning: Permanently added the RSA host key for IP address '192.30.255.113' to the list of known hosts.
  3. Counting objects: 14, done.
  4. Delta compression using up to 4 threads.
  5. Compressing objects: 100% (10/10), done.
  6. Writing objects: 100% (14/14), 1.16 KiB | 0 bytes/s, done.
  7. Total 14 (delta 2), reused 0 (delta 0)
  8. remote: Resolving deltas: 100% (2/2), done.
  9. To git@github.com:linuxidc/project.git
  10. * [new branch] master -> master
  11. 分支 master 设置为跟踪来自 origin 的远程分支 master。

上面使用git push时带上了-u参数,是将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

从远端仓库下载新分支与数据

  • git fetch会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
  1. [root@linuxidc project]# git remote -v
  2. origin git@github.com:linuxidc/project.git (fetch)
  3. origin git@github.com:linuxidc/project.git (push)
  4. [root@linuxidc project]# git fetch origin
  5. remote: Counting objects: 3, done.
  6. remote: Compressing objects: 100% (2/2), done.
  7. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
  8. Unpacking objects: 100% (3/3), done.
  9. 来自 github.com:linuxidc/project
  10. 6c3b072..4d38d99 master -> origin/master

git fetch origin会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

  • 查看分支

git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支。

  1. [root@linuxidc project]# git branch -r
  2. origin/master
  3. [root@linuxidc project]# git branch -a
  4. * master
  5. remotes/origin/master

上面命令表示,本地主机的当前分支是master,远程分支是origin/master。

  • 取回远程主机的更新以后,可以在它的基础上,使用git checkout命令创建一个新的分支。
  1. [root@linuxidc project]# git checkout -b newBrack origin/master
  2. 分支 newBrack 设置为跟踪来自 origin 的远程分支 master。
  3. 切换到一个新分支 'newBrack'

上面命令表示,在origin/master的基础上,创建一个新分支。

  • 此外,也可以使用git merge命令或者git rebase命令,在本地分支上合并远程分支。
  1. [root@linuxidc project]# git merge origin/master
  2. Already up-to-date.
  3. [root@linuxidc project]# ls
  4. file1 file2 file3 README.md

 

上面命令表示在当前分支上,合并origin/master。此时使用ls就可以查看到我刚刚在仓库段创建的README.md文件了

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/506276
推荐阅读
相关标签
  

闽ICP备14008679号