Git 版本控制系统(尚硅谷)

这篇具有很好参考价值的文章主要介绍了Git 版本控制系统(尚硅谷)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,
将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。

查看Git的版本

git --verson

Git 基本工作流程

Git 版本控制系统(尚硅谷),git

Git 使用前配置

1. 配置提交人姓名:git config --global user.name “提交人姓名” # (对当前系统用户有效)
2. 配置提交人姓名:git config --global user.email  “提交人邮箱” # (对当前系统用户有效)
        作用:识别开发人员,与登良github的账户无关
3. 查看git配置信息:git config --list

注意
1.如果要对配置信息进行修改,重复上述命令即可。
2. 配置只需要执行一次。

常用提交步骤

1 git init  # 初始化git仓库

2 git status  # 查看文件状态

3 git add 文件列表 # 追踪文件

4 git commit -m  “xxxx”  # 向仓库中提交代码(全部文件)
        vs: git commit -m "xxxx"  文件  # 提交某个文件

5 git log # 显示所有提交记录
         vs: git log --pretty=oneline   # 一行显示版本信息

补充:
git log lfa380b5O2a0Ob82bfc8d84c5ab5el5b8fbf7dac # 会显示所有关于这个id以及之前的修改记录
git log lfa380b5O2a0Ob82bfc8d84c5ab5el5b8fbf7dac -1 # 加上-1参数表示我们只想看到一行记录
而如果想要查看这条提交记录具体修改了什么内容,可以在命令中加入p参数,命令如下:
git log Ifa380b502a00b82bfc8d84c5ab5el5b8fbf7dac -1 -p

6 git reset  --hard 版本id  # 回退版本

7 git reflog   # 查看所有版本信息

8 git diff  # 表示未使用add命令时的修改

这样可以查看到所有文件的更改内容,
如果你只想查看MainActivity.java这个文件的更改内容,
可以使用如下命令:
git diff app/src/main/java/com/example/providertest/MainActivity.java

vs:git log 表示最近的改变,git reflog可以看到所有的改变
如果文件未被跟踪,即没有使用git add这个命令时,文
件为红色,如果使用这个命令,则文件变为绿色. 
 

Administrator@E3J6CI1HV76DS4U MINGW32/d/360MoveData/Users/Administrator/Desktop/test
$ git init
Initialized empty Git repository in D:/360MoveData/Users/Administrator/Desktop/test/.git/

Administrator@E3J6CI1HV76DS4U MINGW32/d/360MoveData/Users/Administrator/Desktop/test (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        index.html

nothing added to commit but untracked files present (use "git add" to track)

Administrator@E3J6CI1HV76DS4U MINGW32/d/Users/Administrator/Desktop/test (master)
$ git add index.html

Administrator@E3J6CI1HV76DS4U MINGW32/d/Users/Administrator/Desktop/test (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   index.html


Administrator@E3J6CI1HV76DS4U MINGW32/d/Users/Administrator/Desktop/test (master)
$ git commit -m 第一次提交
[master (root-commit) 23db606] 第一次提交
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 index.html

撤销

1 git checkout 文件
不过这种撤销方式只适用于那些还没有执行过add命令的文件,如果某个文件已经被添加过了,这种方式就无法撤销其更改的内容.
这种情况我们应该先对其取消添加,然后才可以撤回提交。
取消添加使用的是reset命令,用法如下所示:
git reset HEAD app/src/main/java/com/example/providertest/MainActivity.java
然后再运行一遍git status命令,你就会发现MainActivity.java这个文件重新变回了未添加状态,此时就可以使用checkout命令来将修改的内容进行撤销了。

2 用暂存区中的文件覆盖工作目录中的文件: git checkout 文件
应用场景:如果开发过程中不满意当前的内容,想要后悔药,那么可以使用这个命令从暂存区取相应的文件来恢复,使用后文件的状态依然为绿色.

3 将文件从暂存区中删除: git rm --cached 文件
应用场景:开发过程中,不是每个文件都是有必要交给git管理的,使用这个命令可以从暂存区删除没用的文件,不交给git管理,此时文件在工作目录依然存在,只是没在暂存区而已.

4 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:git reset --hard commitID
应用场景:开发过程中,如果想要利用某次记录覆盖暂存区和工作目录,则可以使用 上面那个命令.
 

Git进阶

分支

为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。
 

分支细分

主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。
开发分支(develop):作为开发的分支,基于 master 分支创建。
功能分支(feature):作为开发具体功能的分支,基于开发分支创建
功能分支 -> 开发分支 -> 主分支
解析:实际开发中,主分支一般来发布源码之类,要保持稳定,所以就出现了开发分支,当开发分支弄好后在合并到主分支.
功能分支是作为开发具体功能的分支,为了保持开发分支的稳定,当功能分支弄好后在合并到开发分支.所以路线就是
功能分支 -> 开发分支 -> 主分支
 

分支命令

git branch  # 查看分支

git branch 分支名称 # 创建分支

git checkout 分支名称  # 切换分支
注意:在切换分支的时候一定要保证当前的内容处于提交状态,即有使用git commit这个命令,否则切换到其他分支的时候会把切换前的分支内容带过去,这不是我们想要的

git merge 来源分支 # 合并分支

git branch -d 分支名称` # 删除分支(分支被合并后才允许删除)(-D 强制删除)
注意:如果某分支没有合并,则该分支不可以直接被删除,解决办法就是把小d改为大D即可。
 

暂时保存更改

在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换
存储临时改动:git stash
恢复改动:git stash pop


应用场景(分支临时切换);开发过程中,如果老板说以前的内容存在bug,那么你得切换分支去修改,
但你当前的分支尚未完成,不想提交上去.即不要git commit这个命令的需求,但是又不想把切换前
的分支内容带过去,此时可以利用git stash(存储临时改动)这个命令,这个命令的作用就是把你当
前分支的内容剪切到剪贴板上,然后就可以切换分支了,虽然没有git commit这个命令,但状态已
处于工作清空状态(即暂存区跟工作目录没有内容了)。
当处理好bug之后切换到原来的分支,使用git stash pop(恢复改动)这个命令从剪贴板复制过来,此时又恢复之前的状态了。

github

在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史
记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。

只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个
“文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。
 

github解释名词

仓库(Repository)
有多少个开源项目,就有多少个仓库

收藏(Star)
即收藏人数

fork(克隆)
复制项目到自己的仓库

pull request
请求把改变的内容更改到被克隆的那个远程仓库中

watch(关注)
通知你关注项目的改变

issue(事务卡片)
发现bug,把bug通知上去,讨论协商

多人协作开发流程

Git 版本控制系统(尚硅谷),git

Git 版本控制系统(尚硅谷),git

Git 版本控制系统(尚硅谷),git

合作流程

同队开发
1.首先A方创建远程仓库,将本地仓库推送到远程仓库
(我们本地仓库的版本必须大于远程仓库的版本,否则push失败。),
采用git push 远程仓库地址 分支名称。
git push https://github.com/yxjgithub-png/git-demo.git master # 将master分支推送到远程仓库。但是这里地址麻烦,可以采用步骤2添加别名

2. git remote add 远程仓库地址别名(可以自定义,一般为origin)  远程仓库地址 # (查看当前远程地址的别名
git remote -v )
git remote add origin https://github.com/yxjgithub-png/git-demo.git # 如果不想使用地址形式,可以采用别名来代替。如果想直接使用git push,则可以采用步骤3

3. git push -u 远程仓库地址别名 分支名称
git push origin master  # 推送远程分支
git push -u origin master # -u 记住推送地址及分支,下次推送只需要输入git push即可.B方想加入团队进行开发,则需要步骤4.
解析:第一次输入需要用户名和密码,以后不用,window系统会帮助我们记住用户名和密码,在那个控制面板的凭据管理器中。

4.git clone 仓库地址 
git clone 远程仓库地。B方想推送自己修改的内容,则需要步骤5
效果:1.下载内容到本地 2.克隆别人远程仓库的别名 3.初始化仓库

当我们需要clone后想把内容推送到别人的远程仓库时,不可以直接推送,而是需要别人在相应的远程仓库的settings里面操作,填写邀请队友的账号。当我们用git clone的时候,不仅将对方的东西复制过来,而且连对方远程仓库的别名也复制过来。
5. git push 远程仓库地址 推送的分支
git push origin master  # B方想把内容推送给A方,然后A方可以采用步骤6进行版本的更新

git push <远程主机名>  <本地分支名>:<远程分支名>
注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。


6.git pull
拉取远程仓库中最新的版本:git pull 远程仓库地址 远程地址分支名称
git pull origin master # 拉取origin主机的master分支,与本地当前分支合并

比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样   git pull origin next:master
如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:git pull origin next


git clone 跟 git pull的区别
git clone是在没有本地仓库的基础上clone别人的东西,而git pull则是在有本地仓库的基础上拉取代码到本地。git clone
只是第一次参与开发时用,以后都是用git pull命令

解决冲突
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。
先把远程仓库pull下来,然后删除冲突的标记,再做相应的修改即可。然后git add,git commit,git push上去。

跨团队协作
1. 程序员 C fork仓库:把对方远程仓库的内容复制到自己的远程仓库
2. 程序员 C 将远程仓库克隆在本地进行修改
3. 程序员 C 将仓库推送到自己的远程仓库
4. 程序员 C如果想要把修改内容发给对方,则需要点击pull request命令
5. 然后等待原远程仓库作者审核
6. 原远程仓库作者合并代码即可
 

ssh免登陆

生成秘钥:ssh-keygen
秘钥存储目录:C:\Users\用户\\.ssh
公钥名称:id_rsa.pub
私钥名称:id_rsa
解析:使用ssh-keygen命令,然后生成秘钥,私钥保存在自己的电脑中,公钥发布在自己的远程仓库中(在settings中找到设置ssh的地方,将公钥的内容复制到那里),然后复制相应仓库的ssh地址,然后正常操作就可以实现免密码登录。
 

GIT忽略清单

将不需要被git管理的文件名字添加到.gitignore中,
在执行git命令的时候,git就会忽略这些文件。
将工作目录中的文件全部添加到暂存区:git add .

bug

idea提交项目到github
提交到远程库错误:Push to origin/master was rejected
解决方案:git pull origin(远程仓库的地址) master --allow-unrelated-histories
 

Github搜索技巧

in:name Vue # 搜索项目名包含Vue的项目
in:name Vue  stars:>5000 # 搜索Vue项目的star数大于5000 
in:name Vue stars:>5000 forks:>5000 # 搜索Vue项目的star数大于5000 并且 forks:>5000
in:readme Vue # 搜索README.md里面包含Vue的项目
in:descrition Vue # 搜索项目描述包含Vue的项目
language:java  # 搜索语言为java的项目
pushed:>2020-01-02 # 搜索项目最后更新时间大于2020-01-02的项目
 

图片总结

Git 版本控制系统(尚硅谷),git

Git 版本控制系统(尚硅谷),git

Git 版本控制系统(尚硅谷),git

Git 版本控制系统(尚硅谷),git

Git 版本控制系统(尚硅谷),git

Git 版本控制系统(尚硅谷),git

Git 版本控制系统(尚硅谷),git文章来源地址https://www.toymoban.com/news/detail-763915.html

到了这里,关于Git 版本控制系统(尚硅谷)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git----分布式版本控制系统

    Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。它是世界上目前最先进的分布式版本控制系统。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布

    2024年02月15日
    浏览(59)
  • git分布式版本控制系统

    右键菜单 选择Git Bash Here,输入任意一条后回车来查看当前Git软件的安装版本。 2.1 区域 Git软件为了更方便地对文件进行版本控制,根据功能得不同划分了三个区域 存储区域:Git软件用于存储资源得区域。一般指得就是.git文件夹 工作区域:Git软件对外提供资源得区域,此区

    2024年03月21日
    浏览(63)
  • 分布式版本控制系统 Git

    目录 一、Git简介 二、Git历史 三、安装git 1.准备环境 2.Yum安装Git 四、初次运行 Git 前的配置 命令集 实例: 五、Git命令常规操作  六、获取 Git 仓库(初始化仓库) 创建裸库 实例 : 创建本地库         官网:Git         git是一个分布式版本控制软件,最初由林纳斯

    2024年02月22日
    浏览(53)
  • Git——分布式版本控制系统

    Git是一个开源的分布式版本控制系统,可以高效的处理从小到很大的项目版本管理。 集中式 SVN,CVS 使用单一的服务器用来管理和存储所有文件的修订版本;协同开发的成员拉取或提交都需连接到这台服务器;如果服务器宕机,宕机期间任何人都不能拉取或提交,无法做到协

    2024年02月10日
    浏览(60)
  • Git 分布式版本控制系统

    版本控制系统是一种记录文件变更历史的系统,它允许开发者跟踪文件的修改、还原特定版本、并在多个用户之间协同工作。VCS 主要有两种类型:集中式版本控制系统(Centralized VCS,如 SVN)和分布式版本控制系统(Distributed VCS,如 Git)。 版本追踪: 可以追踪文件的每一次

    2024年01月17日
    浏览(48)
  • Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(68)
  • 分布式版本控制系统git详解

    是目前世界上最先进的分布式版本控制系统 git命令 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。 Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Lin

    2024年02月15日
    浏览(49)
  • git版本控制系统以及项目部署方法

     git只适合开源的软件,安全性 不行  svn集中式版本控制系统必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,呵呵。分布式版本控制系统可以不连网工作,因为版本库就在你自己的电脑上。·集中式版本控制系统如果中央

    2023年04月08日
    浏览(40)
  • Git分布式版本控制系统与github

    第四阶段提升 时  间:2023年8月29日 参加人:全班人员 内  容: Git分布式版本控制系统与github 目录 一、案例概述 二、版本控制系统 (一) 本地版本控制 (二)集中化的版本控制系统 (三)分布式版本控制系统 三、 Git简介 (一)概述 (二)Git发展史 (三)Git功能特性

    2024年02月11日
    浏览(53)
  • 从入门到精通:Git版本控制系统完全指南

    💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 Git是一个强大的版本控制系统,它可以帮助开发者轻松地管理代码版本、协作开

    2023年04月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包