git的两大特点

  • 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
  • 分布式
    Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub网站。
  • 工作区与暂存区的区别
    工作区:就是你在电脑上看到的目录,比如目录下mygit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
    版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。


工作区、暂存区、版本库的关系


基本操作

说明 命令
初始化仓库 git init
创建版本记录 git add
git commit -m "版本说明信息"
查看有哪些未被提交到版本库下 git status
查看版本记录与序列号 git log
回退到上一个版本(一个^表示前一个版本) git reset --hard HEAD^
git reset --hard 版本序列号
查看操作记录 git reflog
对比文件不同 git diff HEAD -- 文件
对比两个版本的某个文件不同 git diff HEAD HEAD^ -- 文件

分支

master:用户保存发布的项目代码。v1.0,v2.0
dve:保存开发过程中的代码

协同开发分支维护

说明 命令
创建分支 git branch 分支名称
切换分支 git checkout 分支名称
创建并切换分支 git checkout -b 分支名称
查看全部提交记录 git log --pretty=oneline
合并分支到当前分支 git merge 分支名称
删除分支 git branch -d 分支名称
禁止快速合并 git merge --no-ff -m '提交的信息' 合并的分支名称

当临时有需求的情况下,暂时放下手头工作快速切换新需求

相当于弄了个快照 git stash
查看快照 git stash list
恢复快照 git stash pop

冲突

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
其中<<<HEAD是指主分支修改的内容,>>>>>fenzhi1 是指fenzhi1上修改的内容,我们可以修改下如下后保存:手动解决冲突,并提交

远程操控

1
2
3
4
5
6
7
8
9
添加ssh账户:
输入git log查看邮箱和名字
vi .gitconfig 输入邮箱如图

退回仓库目录输入ssh-keygen -t rsa -C '你的邮箱'
查看ssh:在家目录.ssh/下(win系统就是C盘用户.ssh下
id_rsa是你电脑的私钥
id_rsa.pub是你的ssh
拿着ssh公匙去生成(设置→安全设置→SSH公匙)
说明 命令
git全局设置: git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
推送代码,一般都是创建一个分支保存完后(app、commit)再推送) git push origin 分支名称
克隆仓库 git clone 仓库地址
如果克隆失败,尝试输入以下两条代码 eval "$(ssh-agent -s)"
ssh-add
忽略远程版本与本地版本差异,强行pull下来 git pull origin master --allow-unrelated-histories
跟踪远程(可以直接git pull,不用打origin smart git branch --set-upstream-to=origin/远程的分支 本地的分支
推送到远程的初始仓库 git remote add origin 远程仓库的地址

尾巴

更加详细的链接:
码云帮助中心:https://gitee.com/help/categories/43
git大全:https://gitee.com/all-about-git
菜鸟教程:https://www.runoob.com/git/git-tutorial.html
git命令学习demo:https://oschina.gitee.io/learn-git-branching/?demo