当前位置:   article > 正文

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

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与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相关配置

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

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

Git相关命令

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

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

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

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

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

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

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

1.初始化本地仓库

cd    改变目录

mkdir    创建目录

pwd    用于显示当前目录

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

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

2.添加仓库文件

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

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

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

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

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

 

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

使用 git add <file> 添加文件到仓库

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

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

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

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

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

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

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

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

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 远程仓库(Github)

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

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

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

从远程仓库克隆

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

克隆仓库的命令格式为:git clone <repo> <directory>

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

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

 添加远程库

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

$ ssh-keygen -t rsa -C "youremail@example.com"

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

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

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

为了验证是否成功,输入以下命令:$ ssh -T git@github.com,结果如图:

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

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

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

提取远程仓库

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

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

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

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

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

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

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

 

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

推送到远程仓库

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

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

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

删除远程仓库 

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

具体实例如下:

 

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

闽ICP备14008679号