Git
Git介绍
Git是目前最流行的分布式版本控制
Git是用c语言开发的
配置用户信息
1.git config --global user.name 用户名
2.git config --global user.email 邮箱
–global代表全局配置
创建版本库
1.初始化版本库 git init
2.添加文件到暂存区 git add 文件名
git add -A . 表示全部文件都添加到暂存区
3.把暂存区的文件提交到仓库
git commit -m “本次提交的说明”
后悔药
1.git status 查看当前仓库的状态
2.git diff 查看修改的内容
3.git log 查看从最新到最远的提交日志(退出git log:按Q就行啦)
4.git reset --hard HEAD^
HEAD 表示表示当前版本
^ 表示回退一个版本
HEAD ~100 回退100个版本
git reset --hard 版本号 回到指定版本
5.git reflog 查看命令历史,以便确定要回到未来的哪个版本。
工作区 暂存区 版本库
1.工作区指的是电脑上的目录
2.工作区中 .git文件是版本库
3.版本库中的暂存区和分支 HEAD指针指向的是当前分支 工作区的内容通过add提交到暂存区,暂存区的内容通过commit提交到当前分支master
Git跟踪管理的是修改,并不是文件
4.git checkout --文件名 撤销工作区的修改
5.git reset HEAD 可以把暂存区的修改撤销掉
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
6.git rm 文件 删除文件
远程仓库
1.创建SHH Key
ssh-keygen -t rsa -C “你的邮箱地址”
2.查看公钥
cd ~ 回到用户主目录
ll -ah 查看主目录下的所有文件,包含隐藏文件
ll 查看目录下的文件,不包含隐藏文件
cd .ssh 进入.ssh文件 输入ll查看文件
cat id_rsa.pub 查看公钥
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
本地仓库与远程仓库关联
git remote add origin git@github.com:xiaoxiao/demo.git
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
Xiaoxiao替换成自己的github的账号
Demo 替换成自己的远程仓库名 本地仓库名和远程仓库名最好一样
1.git push -u origin master 本地库内容推送到远程库
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
2.git clone 远程库的地址
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
3.git remote -v 查看远程库信息
4.git remote rm origin 删除远程库信息
分支的管理
① git branch 查看分支信息
② git branch 名称 创建分支
③ git checkout 分支名称 切换到指定的分支上
④ git branch -d 分支名称 删除指定的分支
⑤ git merge 分支名称 合并指定的分支到当前的分支上
⑥ git checkout -b 分支名称 创建分支并切换到刚刚创建的分支上
解决冲突
① git log --graph 查看分支合并图
② 出现冲突 手动解决之后在提交就可以
Bug分支
① 出现bug,一般都是创建一个新的分支,解决完bug之后在合并分支,最后删除分支
② git stash 存储工作现场
③ git stash pop 回到工作现场
④ git stash list 查看保存的工作现场
强行删除分支
git branch -D 分支名称 强行删除还没有合并的分支
协作开发
⑦ 首先,可以试图用git push origin 推送自己的修改;
⑧ 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
⑨ 如果合并有冲突,则解决冲突,并在本地提交;
⑩ 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
⑪ 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。
协作开发
⑫ 查看远程库信息,使用git remote -v;
⑬ 本地新建的分支如果不推送到远程,对其他人就是不可见的;
⑭ 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
⑮ 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
⑯ 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
⑰ 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
标签管理
(1)git tag 查看标签的信息
(2)git tag 名称 创建标签名臣
(3)git tag -a -m “blablabla…” 指定标签的信息
(4)git push origin 推送本地标签到远程仓库
(5)git push origin --tags 推送全部未推送过的本地标签
(6)git tag -d 删除标签
(7)git push origin :refs/tags/ 删除一个远程标签