Git会这些就够了
Git是什么
分布式版本控制工具
2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。
Git安装配置
1. 要想使用git首先就要安装git。
next...安装完毕之后,右键
即可进入git的命令行工具。
接下来就是要配置SSH公钥私钥,然后绑定你的gitHub账号。
a、设置用户名:git config -- global "user.name" ;//你再github上注册的用户名,注意一定要双引号
b、设置用户邮箱:git config -- global "user.email" ;// '注册时候的邮箱'
c、生成密匙: ssh-keygen -t rsa -C"user.name"
d、添加密匙到ssh-agent:ssh-add ~/.ssh/id_rsa
e、登陆Github, 添加 ssh 。
把id_rsa.pub文件里的内容复制setting里
f、测试
输入 ssh -T git@github.com
你将会看到
The authenticityofhost'github.com (207.97.227.239)' can't be established.RSAkeyfingerprintis16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.Are you sure you wanttocontinueconnecting (yes/no)?
选择yes,如果看到你的用户名就说明成功了。
git使用
在gitHub上创建一个新的仓库然后clone到本地
git clone git@github.com:NbZzp/test1.git
即可将你的仓库拷到本地。本地仓库文件夹里会有一个隐藏的.git文件,千万千万不要删除。这里面会记录仓库的一些信息,就是他的存在这才成了一个git仓库。 同时在上面克隆的时候 空格 + name 可以自定义你克隆的文件名。
git略懂
这是git工作的原理图
remote是远程的线上仓库
repository是本地仓库,本地仓库和远程仓库会有对应,但不一定全有
idnex是暂存区
workspace工作区
好空洞啊!怎么理解呢?可以这样理解。吧git的工作流程理解成发快递。
工作区,也就是我们敲代码的地方,可以理解成,我们准备快递的地方,我们要在快递箱子里装什么东西。
git add 是吧我们写好的代码也就是准备好的快递放到暂存区,也就是快递点,为什么要有暂存区呢?那你说为什么要有快递点呢?快递点就是把你的快递先放在这里,等快递攒够一定的数量,在一起发货,难不成有个人送过去一个快递,快递公司就给你着一辆车送过去?不存在的!
git commit 就是吧暂存区的快递发到本地仓库,也就是吧快递点的快递送到你们省的总仓库。当然了,送到总仓库对方就能收到件吗?你想啥呢!快递速度要上天啊!
git push 就是吧本地仓库的快递发出去,也就是本地仓库的代码传到线上仓库。
git常用命令
git的基本使用是这样的
1,git clone 获取仓库
2,git add . 将所有修改上传到暂存区
3,git commit -m '备注' 将暂存区文件上传到本地仓库
4,git push 将本地仓库代码推到线上
使用过程中还可以用:
git status 查看暂存区文件
什么?status这些命令太长记不住?
git config --globalalias.st status 修改别名,将status简写为st,同理可修改其他命令。
git branch 查看本地仓库信息 -a 查看所有
git remote -v 查看远程仓库信息
git log 查看日志
wq可以恢复正常操作
git reset --hard 09a34f3回滚写前几位即可
git push –f 强制推送到远程 不推荐
git diff 查看区别 空格分支名 空格分支名比较两个分支 远程分支
$ git diff test origin/test
git分支
在多人的项目开发中,还要涉及到分支。
Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。
gei分支并不是新建了一份文件,而是保存了一些文件快照。
分支的切换,更新等,也只是HEAD指针的来回切换
一般在项目中我们的master分支会作为线上稳定版主分支,还有dev测试分支等。
多分支的时候,每次上传前记得先git pull (pull其实就相当于fetch + merge)
git merge 分支名 ,可以将该分支可并到当前分支,
在merge(pull包含merge)的时候,如果两个人同时改了同一个文件,就会产生冲突。只需手动在代码里解决一下冲突即可。非常推荐vscode,开源免费,功能齐全又轻量,界面美观。
在github上可以在这里添加协作者。
git branch test 新建本地分支test
git push origin test 新建本地分支之后,远程分支是没有的,需要将本地分支推到远程
git checkout test 切换到test
git branch -dtest 删除本地分支test,远程分支还在。
更多详细的命令,不再一一列举,这就是我对git的一些粗浅的理解。希望大家都能互相学习,多多指教。
想更加深入了解,这里有git中文官方文档。