Git学习和安装

导读:本篇文章讲解 Git学习和安装,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、版本控制

1.本地版本控制系统

​ 人们把项目拷贝到本地磁盘上进行备份, 然后以命名方式来区分. 这种做法好处是简单, 但坏处也不少比如备份比较 多或许就会混淆不同版本之间的区别. 那为了解决这个问题, 有人就开发了一个本地版本的管理系统

2.集中化版本控制系统

​ 诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管 理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出新的文件或者提 交更新

​ 只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新 记录的风险。

3.分布式版本控制系统

​ Git,Mercurial,Bazaar 以及 Darcs 等, 客户端不只是提取出新版的文 件快照, 而是把原始的代码仓库镜像到本地. 这样一来,任何一处协同工作用的服务器发生故障,事后都可以用任 何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。

二、Windows上安装Git

1.安装

在Windows上使用Git,先从Git官网直接下载安装程序,选择指定系统下载,然后按默认选项安装即可

​ 在开始菜单里找到**“Git”->“Git Bash”,**显示出类似命令行的窗口,说明Git安装成功

2.使用

​ 在窗口内输入 git –version 查看git 版本信息如下

​ 在使用用Git工作之前,我们需要做个一次性的配置。方便后续Git能跟踪到谁做了修改,我们需要设置对应的用户 名与邮箱地址。

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

git config --global user.name "your_username" 

git config --global user.email your_email@domain.com 

git config --list 查看所有配置

三、创建版本库并提交文件

1.创建版本库

编写一个文本文件并将文件提交到git仓库

  • 初始化git 本地仓库 通过执行 git init 命令在本地初始化一个本地仓库,执行该命令后会在本地初始化一个没有任何文件的空 仓库。
  • 新建文本文件 git01.txt 并添加到暂存区
  • git status 命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没 有被Git tracked到。
  • git add path 通常是通过git add 的形式把 添加到索引库中, 可以是文件也可以是目录。 git不仅能判断出 中,修改(不包括已删除)的文件,还能判断出新添的文件,并把它们的信息添加到索引库中。
  • 提交文件到本地版本库文件被添加到暂存区后,执行git commit 命令提交暂存区文件到本地版本库中。 git commit 命令后跟上 -m 属性
  • git log :命令用于显示提交日志信息。 (比较常用,后续降到时光穿梭时会经常使用该命令)。

2.修改文件与文件提交

  • 此时当文件修改后 使用 git status 命令可以看到git 检测到文件被修改,git 版本库给出的下一步操作是添加修 改的文件到暂存区 此时执行添加操作命令

  • 执行提交 git commit -m “属性”

  • git log 命令查看操作日志记录

    **注意:**差异比较说明 ---:表示变动前的文件 +++:表示变动后的文件 变动的位置用两个@作为起首和结束 @@ -1,2 +1,3 @@:减号表示第一个文件,”1″表示第1行,“2″表示连续2行。同样的,”+1,3″表示变动后,成为第二个 文件从第1行开始的连续3行。

    暂存区文件提交与撤销:当发现因失误而将文件添加到暂存区时,git 支持文件的撤销操作 执行命令 git reset HEAD 文件

3.版本回退

  • git01.txt 文件已有几个版本,对于历史版本的查看 使用 git log 命令
  • git reset 命令用于将当前HEAD复位到指定状态。一般用于撤消之前的一些操作(如:git add,git commit等)。
  • ,如果提交历史记录较多 可以加入数字控制显示的版本记录数 并且使用git log -3 –pretty=oneline (最多显示三次)
  • 回退到上一版本执行 **git reset –hard HEAD^ ** **HEAD^ :将指针之上上一个版本,如果是上上一个就是 HEAD^,上上上一个HEAD^^,**但这样记就比较麻烦,如果回 退版本较多,简写为 HEAD~100 往前回退100个版本 ~后跟数字即可
  • ,Git提供了一个命令 git reflog 用来记录用户操作的每一次命令

4.文件删除

  • 如果此时发现文件是被误删除呢,不用担心,这里可以将误删除的文件重新从版本库中检出,执行命令:git checkout – 文件名
  • 如果确定是要执行删除操作 执行 git rm 文件名 命令即可

四、远程创库

1.克隆远程项目到本地

https://github.com/

1.1克隆项目到本地执行 git clone 项目路径
1.2在本地磁盘指定目录下右键 git bash here 操作

2.将本地库推送到远程

1.Git本地库初始化与文件提交
git init 
git add file|path  提交文件|文件夹 到暂存区
git commit file|path -m "提交说明"  提交暂存区文件或目录到本地仓库 
2.推送本地仓库文件到远程仓库(GitHub)
1.注册github 账户  
2.创建远程库  

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y8A3EKs4-1597568364328)(F:/A20200102/%E9%AB%98%E7%BA%A7%E8%B5%84%E6%BA%90/Git/reference/images/1578123886976.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yv0TAN3O-1597568364332)(F:/A20200102/%E9%AB%98%E7%BA%A7%E8%B5%84%E6%BA%90/Git/reference/images/1578123933439.png)]

3.执行推送(https | ssh(推荐使用))
  3.1  生成 ssh 公钥 私钥串
      ssh-keygen -t rsa -C "GitHub账户邮箱"
  3.2 上传公钥到github     

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kNCC7Osp-1597568364334)(F:/A20200102/%E9%AB%98%E7%BA%A7%E8%B5%84%E6%BA%90/Git/reference/images/1578124093445.png)]

3.3 绑定远程库到本地
    git remote add origin ssh地址
3.4 推送本地文件到远程仓库
    git push  -u origin master
3.5 验证是否成功:
	 ssh -T git@github.com

五、Git分支操作

命令 描述
git checkout branch 切换到指定分支
git checkout -b new_branch 新建分支并切换到新建分支
git branch -d branch 删除指定分支
git branch 查看所有分支, 并且*号标记当前所在分支
git merge branch 合并分支
git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命 名,否则,使用-m进行重命名。

1.创建本地分支,查看分支

创建分支

git checkout -b 分支名

查看分支

git branch

2.切换指定分支,执行合并操作

切换:

git checkout 分支名

合并:

git merage 合并的分支

3.重命名分支

git branch -m 原分支名 新分支名

4.删除分支

不能再待删除的分支上执行删除当前分支操作

git branch -d 分支名

5.分支Push与Pull操作

命令 描述
git branch -a 查看本地与远程分支
git push origin branch_name 推送本地分支到远程
git push origin :remote_branch 删除远程分支(本地分支还在保留)
git checkout -b local_branch origin/remote_branch 拉取远程指定分支并在本地创建分支

6.分支操作冲突出现与解决

6.1本地分支操作冲突

​ 修改master与leaf01分支前git01.txt 文件内容状态

​ Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容 <<<<<<< HEAD 当前git 指向分支 这里指的为master ======= 分离不同分支修改的内容 >>>>>>> leaf01 leaf01 与 master 在git01.txt 同一行同时出现了修改操作 这里git 是不允许发生的

​ 此时出现冲突后 这里对git01.txt 内容进行修改 (实际开发视情况而定 这里将内容合并为一行)

6.2多人协同操作冲突

​ 拉取远程库dev 并在本地创建dev开发库,执行命令 git checkout -b dev origin/dev 这里以同台机器不同窗口来 模拟两个用户操作同一分支同一文件(实际开发时多人操作统一文件冲突情况比较常见) 这里两个客户端以c1与c2来描述

​ c1 客户端本地修改dev 分支git01.txt 文件并在本地执行提交操作

​ C2 客户端在本地同样修改了dev分支git01.txt 文件并在本地执行提交

此时解决方式Git 已有对应提示 Push 之前先执行Pull 操作 将远程文件拉取到本地 解决完冲突后再次执行Push 操 作

7.标签管理

命令 描述
git tag tag_name 新建标签 默认为HEAD
git tag -a tag_name -m ‘xxx’ 添加标签并指定标签描述信息
git tag 查看所有标签
git tag -d tag_name 删除一个本地标签
git push origin tag_name 推送本地标签到远程
git push origin –tags 推送全部未推送过的本地标签到远程
git push origin :refs/tags/tag_name 删除一个远程标签

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/121450.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!