git学习笔记

目录

1.git介绍

➢ 分布式版本控制工具

➢Git 和代码托管中心

2.git的常用命令

1.初始化本地仓库

2.查看本地仓库的状态

3.添加至暂存区

4.提交到本地仓库

5.修改代码

6.版本穿梭

3.分支

  3.1 什么是分支

3.2.分支的常用命令

1.切换分支

2.正常合并

3.冲突合并

4.团队协作

1.团队内协作

2.跨团队协作

5.github

1.复制http链接

2.取别名

3.推送到远程库

4.接收远程库的更新

5.克隆远程仓库到本地

6.IDEA集成Git操作

问题 1:为什么要忽略他们?

问题 2:怎么忽略?

3.注意


1.git介绍

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

分布式版本控制工具

Git、Mercurial、Bazaar、Darcs……

像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次

对整个文件仓库的完整备份。

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)

  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

Git 和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。

局域网 GitLab

互联网GitHub(外网)Gitee 码云(国内网站)

2.git的常用命令

 

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

※注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系

1.初始化本地仓库

git init  //初始化本地仓库, 使用 ll -a 查看本地隐藏文件

2.查看本地仓库的状态

在linux里面的复制一行为 yy 粘贴为p

git status 查看本地仓库的状态

vim hello.txt 创建一个hello.txt的文本文件

cat hello.txt 查看文本文件中的内容

tail -n 1 hello.txt 查看文本文件的最后一行内容

3.添加至暂存区

git add hello.txt 添加至缓存区

git rm --cached hello.txt 删除缓存区的内容

4.提交到本地仓库

git commit -m "my first commit " hello.txt //将hello.txt提交到本地仓库,-m:本次提交的描述信息

git reflog 查看提交的日志

git log 查看完整的提交日志

5.修改代码

vim hello.txt   //修改文本
​
git status   //查看版本状态
​
git add hello.txt  //添加至缓存区
​
git commit -m "second commit" hello.txt   //提交
​
git reflog   //查看提交日志

6.版本穿梭

git reset --hard   //版本号 使用其他版本

3.分支

  3.1 什么是分支

    在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用).

3.2.分支的常用命令

1.切换分支

 git branch hot-fix   // 创建hot-fix分支

git branch -v   //查看所有分支
​
git checkout hot-fix   //切换至hot-fix分支

2.正常合并

git checkout master  切换至master分支
​
git merge hot-fix   合并hot-fix分支到master分支

3.冲突合并

冲突产生的原因:

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

1)编辑有冲突的文件,删除特殊符号,决定要使用的内容

特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

hello git! hello atguigu! 2222222222222
hello git! hello atguigu! 3333333333333
hello git! hello atguigu! master test
hello git! hello atguigu! hot-fix test

2)添加到暂存区


git add hello.txt

3)执行提交(注意:此时使用 git commit 命令时不能带文件名

git commit -m "merge hot-fix"

--发现后面 MERGING 消失,变为正常

4.团队协作

1.团队内协作

 

2.跨团队协作

5.github

1.复制http链接

https://github.com/wuhuai666/gitDemo.git

2.取别名

 

git remote  add git-Demo   https://github.com/wuhuai666/gitDemo.git     //取别名
​
git remote -v  //查看所有别名

3.推送到远程库

git push git-Demo  master   // 将master分支的内容提交到远程仓库

4.接收远程库的更新

git pull git-Demo  hot-fix   //将远程库hot-fix分支的内容更新到本地库中

5.克隆远程仓库到本地

git remote git-Demo1  https://github.com/wuhuai666/gitDemo.git    //取别名
​
git clone   https://github.com/wuhuai666/gitDemo.git       //克隆远程仓库到本地

步骤:  1.拉取远程代码到本地仓库------->2.初始化本地仓库--------------》3.取别名origin
 

6.IDEA集成Git操作

问题 1:为什么要忽略他们?

答:与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。

问题 2:怎么忽略?

1)创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是 git.ignore

这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用户家目录下

git.ignore 文件模版内容如下:

# Compiled class file
​
*.class
​
# Log file
​
*.log
​
# BlueJ files
​
*.ctxt
​
# Mobile Tools for Java (J2ME)
​
.mtj.tmp/
​
# Package Files #
​
*.jar
​
*.war
​
*.nar
​
*.ear
​
*.zip
​
*.tar.gz
​
*.rar
​
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
​
hs_err_pid*
​
.classpath
​
.project
​
.settings
​
target
​
.idea
​
*.iml

2)在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)

[user]

name = Layne

email = Layne@atguigu.com

[core]

excludesfile = C:/Users/asus/git.ignore

注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”

3.注意

注意:push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值