首先大家先明白git不过就是一个版本控制器 还有svn(这个需要联网才可以使用,属于集中式管理,而git为分布式管理,在本地也有版本库,这样即使一个地方的版本库出现问题也不用担心了)也属于版本控制器中的一种,而github和oschina开源中国 gitee码云 是属于远程仓库(也就是用于保管你的的代码的远程库) 一般来说你放在上面的代码都是开源的,不公开的项目存放是需要费用的,当然你也可以搭建一个属于自己的git仓库git服务器 然后将个人的项目存放在上面

因为我本人也是一个普通的大三学生也即将进入实习,但此前还未使用git多人合作过,但也有大致的了解,接下来我会带领大家学习git

大致流程如下:

注册github账号 下载git

使用ssh密匙

git上配置个人信息

github上创建仓库

git推送项目到仓库上面

还有其他各种操作

github上搭建个人page项目展示(纯静态)

 

 

注册github和下载git软件

1、进入官方网站

https://github.com

 

2、找到右上角的sign in

注册 填写个人信息即可

 

3、下载软件

上网搜git官网自行下载

 

安装完后可以在桌面看到这个图标

 

或者单击鼠标右键可以看到

git bash 选项

 

使用密匙ssh登录

在未使用密匙之前每次将项目推送到github的仓库上时候都需要填写账号密码,这换谁都感觉操心所以使用ssh是最好的了

首先如果你是第一次使用git就得先完成以下

 

git init初始化一个仓库 当前路径下会生成一个隐藏文件目录.git这个是一个管理git仓库的文件夹

注意

当前生成的git仓库还是一个空的仓库也就是不属于任何人的仓库

 

 

设置用户账号和邮箱

Git config --global user.name ‘webcyh’

Git config --global user.email ‘1992281294@qq.com’

则下面的是设置编辑器默认使用的vim编辑器有关vim编辑器可以查看我之前编写的vim的使用 这个如果玩的好 鼠标基本用不上了

Git config --global core.editor ‘vim’

接下来是git创建密匙ssh

执行命令

ssh-keygen -t rsa -C "你的邮箱地址" 接着回车

下面出现

 

 

 中间出现的Enter file inwhich to save 后边写的是你要保存的ssh文件路径

接下来的要求输入passphrase 直接回车就行

 

最后到保存的路径下可以看到两个文件

 第一个是私钥要妥善保管

第二个是公钥可以公开的

接下来要将公钥上的内容放到github上面

将pub后缀的文件的内容复制下来

打开github 在管理(setting)当中找到

 

 

 

 

再次点击添加密匙

 

 

将你刚才获取到的ssh密匙贴在上面保存就行

判断是否成功?

git -T git@github.com

 

 

 看到上面的信息说明你的公钥已经起作用了

接着可以手动更改你当前git上保存的仓库地址后边我会给出命令添加地址的方式

首先在当前目录下查看隐藏的目录可以看到.git 打开可以看到

 

打开可以看到目录文件如下 

 

 

 

 简单介绍一下里边文件的用处

 

 

 

这里为了可以查看git的使用可以使用

git --help命令此时,可以看到显示的git的相关参数为了后面的方便使用可以将内容重定向到一个文件夹当中

使用

git --help>>./test.txt 输出内容到指定文件当中

cat test.txt查看文件内容

内容如下

usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone      Clone a repository into a new directory
   init       Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add        Add file contents to the index
   mv         Move or rename a file, a directory, or a symlink
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index

examine the history and state (see also: git help revisions)
   bisect     Use binary search to find the commit that introduced a bug
   grep       Print lines matching a pattern
   log        Show commit logs
   show       Show various types of objects
   status     Show the working tree status

grow, mark and tweak your common history
   branch     List, create, or delete branches
   checkout   Switch branches or restore working tree files
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   merge      Join two or more development histories together
   rebase     Reapply commits on top of another base tip
   tag        Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch      Download objects and refs from another repository
   pull       Fetch from and integrate with another repository or a local branch
   push       Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.

 接下来我会介绍git的工作流程先看下面的图片展示

 

以上可以看出 主要包括三部分 工作区(也就是你当前包含.git目录的目录)、版本库 、以及暂存区  也称为索引

暂存区位于.git 当中的index

在这里为了更加形象的描述

这里可以将则三部分看成三个目录

工作区、暂存区、版本库

比如当前在工作区添加test.txt 文件

在使用git add * 或者 git add file1 file2 后暂存区被更新 同时同时工作区修改或者添加的内容被写入对象库当中的一个新的对象当中同时该对象的id被记录在暂存区的index上

使用git commit 提交时 当前暂存区的目录被记录在版本库当中,同时当前master指向的就是暂存区的目录

git reset HEAD 将master指向的目录更新到暂存区 工作区不受影响(因为此时暂存区可能已经更新了但并没有commit 更新到版本库上因此可以使用该命令恢复到上一次的版本 注意此时还没有push到远程库 但此时也算是一个版本了只是尚未开源)

注意:

此时删除工作区额test.txt文件后再次git add *也会更新到暂存区 此时相当于并集 覆盖掉暂存区的相同部分但暂存区原本存在test.txt 即使工作区删除test.txt但暂存区还是存在该文件应该按一下步骤执行命令

1、首先使用 git diff查看暂存区和工作区有哪些不同如下

此时暂存区状态如下 说明暂存区新添加一下文件 同时此时工作区也有该文件

 

删除工作区的test.txt文件

git status 说明工作区有文件被删除

 

 

 此时暂存区还是存在该文件 如果直接commit到版本库也是可以的

接下来执行

git status

还是显示工作区有文件删除(工作区和暂存区目录不一致会显示出来) 这个说明上次的工作区并没有同步到暂存区在而同步到版本库因此

下次将暂存区同步到版本库之前先使用

以下命令

git diff 查看暂存区和工作区的区别

由上面我们知道暂存区还有个文件test.txt没有被删除

执行

git rm --cached test.txt删除暂存区的test.txt文件

再次使用

git diff 此时暂存区和工作区已经同步了

这个时候就可以将内容保存到版本库当中了

 

 

在以上过程中可能会用到一下命令但相当危险 也许一不小心前面做的内容都没了

git checkout .    或者 filename将暂存区的内容更新到工作区   如果工作区的内容还未更新在暂存区就会丢失

 

使用

git checkout HEAD . 或者 filename可以将master指向的目录更新到暂存区和工作区

 

 

 

使用

git rm 删除暂存区内容和工作区内容

或者Git rm --cached 只删除工作区内容

 

 

 

最后还有一个比较重要的一点

 

分支管理

 

git branch  查看所有分支 或者查看当前所在的分支

git checkout  test 选择当前操作的分支

git branch  -d test 删除分支

git branch test 添加分支

 

git merge 合并分支 

git diff 查看冲突

git merge 再次合并

 

查看日志信息

git log 这个会详细显示最近的提交的内容以及日期

git log --oneline 只显示每次提交的commit内容

git log --oneline --reverse 

 

查看某段时间内的提交

git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges

 

 

给提交添加标签

git tag -a v1.0 给这次提交添加标签

给之前的提交贴标签

可以这样

首先使用

git log --oneline 查看提交的版本 

见前面的记录的id复制下来

git tag -v1.0 id

这样再次log可以看到已经打上标签了

 

 

 

将当前的版本恢复到某个版本

git reset -hard 版本id

git push origin -f master 强制覆盖调取远程库上的版本

 

 后边还有如何搭建个人git服务器作为远程仓库

后续。。。。

posted on 2019-09-03 18:22  渐凸强、啊哈  阅读(159)  评论(0编辑  收藏  举报