Git项目管理工具的原理及使用步骤(小白教程)

目录

Git(全称是分布式版本控制系统)的功能特性

Git与SVN的区别

Git的使用方法

 Git相关配置

Git相关命令

1.初始化本地仓库

2.添加仓库文件

4.查看修改内容,查看文件不同

 5.Git 回退版本

6.删除工作区文件

7.移动或重命名工作区文件

8.管理分支

9.Git 标签

 Git 远程仓库(Github)

从远程仓库克隆

 添加远程库

提取远程仓库

推送到远程仓库

删除远程仓库 


Git(全称是分布式版本控制系统)的功能特性

1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

3、在单机上自己创建的分支上提交代码。

4、在单机上合并分支。

5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

6、生成补丁(patch),把补丁发送给主开发者。

7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

Git项目管理工具的原理及使用步骤(小白教程)_第1张图片

 Git项目管理工具的原理及使用步骤(小白教程)_第2张图片

Git与SVN的区别

两者都是版本控制器,不过Git是分布式的,SVN是集中式的

因为 Git 是分布式的,所以 Git 支持离线工作,在本地可以进行很多操作,包括接下来将要重磅推出的分支功能。而 SVN 必须联网才能正常工作。、

Git复杂概念多,SVN简单易上手

Git分支廉价,SVN分支昂贵

Git的使用方法

Git 下载地址:https://git-scm.com/downloads

安装时全部选择Next就可以

安装好后鼠标右键选择Git Bash Here启动Git命令行界面,后面讲到的所有指令都将在Git Bash中运行。

Git项目管理工具的原理及使用步骤(小白教程)_第3张图片

 Git相关配置

Git项目管理工具的原理及使用步骤(小白教程)_第4张图片

 git config 命令的 --global 参数,用了这个参数,表示你这台机器上所有的 Git 仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址(不加 --global)。

可以使用 git config --list 检查已有的配置信息。

Git相关命令

Git项目管理工具的原理及使用步骤(小白教程)_第5张图片

拉取远程分支代码时,后面要加对应的分支名

Git的工作就是创建和保存你项目的快照及与之后的快照进行对比

 Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull。

git add可以将本地的文件上传到缓存区

git commit将缓存区的文件上传到本地的仓库或版本库

git push将本地仓库的文件上传到远程仓库

Git项目管理工具的原理及使用步骤(小白教程)_第6张图片

 workspace工作区,本地的;staging area暂存区,缓存区;local repository版本库,本地仓库;remote repository远程仓库

1.初始化本地仓库

cd    改变目录

mkdir    创建目录

pwd    用于显示当前目录

git init    把当前目录初始化为 git 仓库

ls -ah    查看当前目录下的文件,包含隐藏文件 (不带 -ah 看不了隐藏文件)

Git项目管理工具的原理及使用步骤(小白教程)_第7张图片

2.添加仓库文件

先在之前创建的本地文件夹learngit中新建README文件,test1.c文件,test2.c文件,test3.c文件。

命令git status -s 查看仓库状态:??表示未上传的文件,A表示上传到缓存区的文件,AM表示本地的和缓存区的文件内容不一样

Git项目管理工具的原理及使用步骤(小白教程)_第8张图片

使用 "git add ." 命令来添加当前项目的所有文件。

只添加一个的话就可以:git add README

使用“git add *.c”可以添加后缀名为.c的所有文件

 Git项目管理工具的原理及使用步骤(小白教程)_第9张图片

 修改README文件后再次查看状态;AM 状态的意思是这个文件在我们将它添加到缓存之后又有改动。改动后我们再执行 git add . 命令将其添加到缓存中,

使用 git add 添加文件到仓库

使用 git commit -m "description" 提交该文件到仓库, description 为对该次提交的描述说明

使用 git status 查看仓库目前状态 (项目是否有修改、添加、未追踪的文件等)

4.查看修改内容,查看文件不同

git diff 查看工作区(work dict)和暂存区(stage)的区别

git diff --cached 查看暂存区(stage)和分支(master)的区别

git diff HEAD -- 查看工作区和版本库里面最新版本的区别

如: git diff hello.txt  表示查看 hello.txt 修改了什么,有什么不同

Git项目管理工具的原理及使用步骤(小白教程)_第10张图片

 5.Git 回退版本

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

格式如下: git reset [--soft | --mixed | --hard] [HEAD]

--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

例如:

$ git reset HEAD^            # 回退所有内容到上一个版本

$ git reset HEAD^ hello.php  # 回退 hello.php 文件的版本到上一个版本

其余参数:

--soft 参数用于回退到某个版本:

实例: $ git reset --soft HEAD~3 # 回退上上上一个版本

--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

实例:

$ git reset –hard HEAD~3  # 回退上上上一个版本  

$ git reset –hard bae128  # 回退到某个版本回退点之前的所有信息。

$ git reset --hard origin/master    # 将本地的状态回退到和远程的一样

注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。

git reset HEAD 命令用于取消已缓存的内容。 现在两个文件修改后,都提交到了缓存区:

我们现在要取消其中一个的缓存,指令: $ git reset HEAD README

之后再执行 git commit,

只会将 test1.c 文件的改动提交,而 README 没有。

可以看到 README  文件的修改并未提交。 这时我们可以使用以下命令将 hello.php 的修改提交

6.删除工作区文件

git rm 命令用于删除文件。

git rm 删除文件有以下几种形式:

1. 将文件从暂存区和工作区中删除: $ git rm

2. 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。

3. 如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

7.移动或重命名工作区文件

git mv 命令用于移动或重命名一个文件、目录或软连接。

$ git mv [file] [newfile]

如果新但文件名已经存在,但还是要重命名它,可以使用 -f 参数:

$ git mv -f [file] [newfile]

我们可以添加一个 README 文件(如果没有的话),然后对其重命名

8.管理分支

$ git branch    # 列出所有本地分支

$ git branch -a    # 列出所有本地分支和远程分支

$ git branch [branch-name]    # 新建一个分支,但依然停留在当前分支

$ git checkout -b [new_branch] [remote-branch]    # 新建一个分支,并切换到该分支

$ git checkout [branch-name]    # 切换到指定分支,并更新工作区

$ git merge [branch]        # 合并指定分支到当前分支

$ git cherry-pick [commit]        # 选择一个 commit,合并进当前分支

$ git branch -d [branch-name]    # 删除本地分支,-D 参数强制删除分支

$ git push [remote] :[remote-branch]    # 删除远程分支

如果我们要手动创建一个分支。执行 git branch (branchname) 即可。

也可以使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。

删除分支命令: $ git branch -d (branchname)

$ git merge 命令将任何分支合并到当前分支中去,合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改

Git vim使用详解:https://blog.csdn.net/zym18351887819/article/details/80468525

9.Git 标签

如果项目达到一个重要的阶段,并希望永远记住那个特别的提交快照,可以使用 git tag 给它打上标签。 比如说,我们想为我们的 learngit 项目发布一个"1.0"版本

当你执行 git tag -a 命令时,Git 会打开你的编辑器,让你写一句标签注解,就像你给提交写注解一样。

执行 git log --decorate 时,我们可以看到我们的标签了:

Git项目管理工具的原理及使用步骤(小白教程)_第11张图片

 Git 远程仓库(Github)

Git 并不像 SVN 那样有个中心服务器。

目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。

这里,我们使用了 Github 作为远程仓库。

Git项目管理工具的原理及使用步骤(小白教程)_第12张图片

从远程仓库克隆

我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。

克隆仓库的命令格式为:git clone

其中repo表示Git 仓库directory代表本地目录比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令

git clone git://github.com/schacon/grit.git mygrit

Git项目管理工具的原理及使用步骤(小白教程)_第13张图片

 添加远程库

以 Github 为例作为远程仓库。由于本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息,使用以下命令生成 SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"

后面的 [email protected] 改为你在 Github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。

成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key

Git项目管理工具的原理及使用步骤(小白教程)_第14张图片

 回到 github 上,进入 Account=>Setting=>SSH and GPG keys=>New SSH key,在key处填入 id_rsa.pub 中的内容,新建SSH key,成功结果如图:

Git项目管理工具的原理及使用步骤(小白教程)_第15张图片

为了验证是否成功,输入以下命令:$ ssh -T [email protected],结果如图:

Git项目管理工具的原理及使用步骤(小白教程)_第16张图片

 之后登录后点击" New repository " 如下图所示:之后在在Repository name 填入 runoob-git-test(远程仓库名) ,其他保持默认设置,点击"Create repository"按钮,就成功地创建了一个新的Git仓库:以上信息告诉我们可以从这个仓库克隆出新的仓库,也可以把本地仓库的内容推送到GitHub仓库。

现在,我们根据 GitHub 的提示,在本地的仓库下运行命令(方框中内容为用户名/远程仓库名):

 然后输入 $ git push -u origin master,现在刷新github,就可以看到我们提交的内容了。

Git项目管理工具的原理及使用步骤(小白教程)_第17张图片

提取远程仓库

查看当前的远程库:$ git remote   # 查看当前配置有哪些远程仓库

                                $ git remote -v  # 查看每个别名的实际链接地址

提取远程仓库$ git fetch  # 从远程仓库下载新分支与数据

                         $ git merge # 从远端仓库提取数据并尝试合并到当前分支

 假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行 git fetch [alias] 告诉 Git 去获取它有你没有的数据,然后你可以执行 git merge [alias]/[branch] 以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支

github上修改其中一个文件,提交后,在Git中输入$ git fetch origin,结果如图:

Git项目管理工具的原理及使用步骤(小白教程)_第18张图片

方框中的信息" 8e510f3..4ae2b8b master -> origin/master" 说明 master 分支已被更新,我们可以使用以下命令 $ git merge origin/master 将更新同步到本地:

Git项目管理工具的原理及使用步骤(小白教程)_第19张图片 

 查看本地文件,发现test2.c已经被修改。

推送到远程仓库

推送你的新分支与数据到某个远端仓库命令:$ git push [alias] [branch]

以上命令将你的 [branch] 分支推送成为 [alias] 远程仓库上的 [branch] 分支,实例如下

Git项目管理工具的原理及使用步骤(小白教程)_第20张图片

重新回到我们的 Github 仓库,可以看到文件已经提交上来了。

删除远程仓库 

删除远程仓库你可以使用命令:$ git remote rm [别名]

具体实例如下:

Git项目管理工具的原理及使用步骤(小白教程)_第21张图片

 

你可能感兴趣的:(git,github,ssh)