【1】git的安装
ubuntu:sudo apt-get install git
mac :brew install git
【2】git的配置
git命令的帮助方法 git help 命令
git config --global user.name "dzs" #配置用户名
git config --global user.email "zhansheng_hello@163.com" #配置邮箱
git config --list #查看配置的
【3】git的工作模式
远程仓库 <-- |---->本地仓库<----->暂存区<----->工作区
|
github |
gitlib | 用户主机存放
码云 |
自己搭建服务 |
【4】初始化git的本地的仓库
mkdir ~/git
git init #初始化一个本地仓库
Initialized empty Git repository in /home/linux/git/.git/
当初始化好一个本地仓库的时候就会在当前目录下
产生一个.git目录,这个目录就是用来记录你的各种信息。
【5】git的本地操作命令
在git的目录下创建一个文件,这个文件它是被放在
工作区。
git add [filename]
#将工作区的文件提交到暂存区
git add .
#将工作区的所有文件,添加到暂存区
git status
#查看工作区向暂存区提交的状态
git commit -m ["message"]
#将暂存区的内容提交到本次仓库
#在提交的时候生成40位的哈希值,这个哈希值就
#对应这本次提交对应的内容,40位的哈希值它相当于
#一个快照,它可以用作版本的回退
git commit -a -m ["message"]
#将已经追踪的文件从工作区添加到本地仓库
#git add filename + git commit -m "message"
git commit -v
#显示上一次提交的内容和当前工作区的差异
git commit --amend -m ["message"]
#通过本次提交,将上一次提交的内容进行覆盖。
git log
#查看日志信息的
commit 6b5f6ca94cf0a385a74daebbfd64b50ec0dc27ed
Author: dzs <zhansheng_hello@163.com>
Date: Thu Aug 6 11:56:23 2020 +0800
add main.c file
git rm [filename] ===>rm filename + git add .
#将文件从暂存区和工作区删除
git rm --cached [filename]
#放弃文件的追踪状态,并将文件从暂存区,本地仓库和远程仓库删除。
#当前工作区的文件依然存在
git mv 源文件的名字 新文件的名字
#修改文件名
git checkout [filename]
#将暂存区的文件恢复到工作区
git checkout .
#将暂存区的所有文件恢复到工作区
git reset HEAD [filename]
#将本地仓库的filename内容恢复暂存区
git reset .
#将本地仓库所有的内容恢复暂存区
git reset --hard 哈希值
#将版本根据哈希值进行回退,这个操作比较危险,不管你
#之前工作区修改了什么内容,直接按照哈希值位置的文件进行更新。
【6】git分支管理的命令
git branch =====>* master
#列举出来git的当前的分支
git branch -r
#列举出来远程的分支
git branch -a
#列举本地及远程的所有的分支
git branch 分支名
#新建一个分支,不会进行分支的切换
git checkout -b 分支名
#新建一个分支,分支的切换
git checkout 分支名
#切换分支
git checkout -
#切换到上一次操作的分支的位置
git branch -d 分支名(ori)
#删除ori这个本地分支
git push origin --delete 分支名
#删除远程分支
git merge dzs #假如当前在master分支
#将dzs分支的内容向master分支合并,如果代码有冲突
#需要手动修改,如果代码没有冲突直接插入内容。
git log --decorate=full
#显示log的信息的时候,会同时显示HEAD tags 远程的信息
git log --graph --pretty=oneline --abbrev-commit
#显示分支合并的图形
#--graph :显示图形
#--pretty=oneline :减少用户信息的数据
#--abbrev-commit :将40位的哈希值缩减为8位
* fb83f58 git merge
|\
| * e76aef1 printf222222
* | 158c05a printf11111
|/
* 0a23f65 2222222222
* f6c7606 1111111111
【7】使用github作为远程仓库
1.自己注册一个github的账号
https://github.com/
2.新建自己的远程的仓库
点击头像->Your repository->new->Iterm
Public :公开仓库
Private :私有仓库,仓库只能自己看
create repository :创建仓库
3.仓库创建好之后会生成一个链接
SSH git@github.com:xxx/Iterm.git
空仓提示信息:
echo "# Iterm-21-31" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:daizhansheng/Iterm-21-31.git
git push -u origin master
仓库已经存在:
git remote add origin git@github.com:daizhansheng/Iterm-21-31.git
git push -u origin master
4.让github能够识别ubuntu
需要在GitHub上填写一个ubuntu的ssh keys值,填写这个keys值之后github
才能识别ubuntu的各种操作。
ubuntu上生成ssh keys,在终端上执行如下命令
ssh-keygen
#一步步回车即可
生成的ssh keys在如下目录存放
/home/linux/.ssh/id_rsa.pub
cat /home/linux/.ssh/id_rsa.pub
将这个keys填充到github的ssh keys中
头像–>settings->ssh and GPG keys->ssh keys
title:给key起的名字
key: 填写上面生成的key值
5.将本地的文件推送到远程
git remote add origin git@github.com:daizhansheng/Iterm-21-31.git
#在远程仓库内添加一个origin的原始仓库
git push -u origin master
#将当前分支的内容推送到远程origin/master分支中
【8】远程操作
git remote -v
#显示远程仓库的fetch/push的地址
git remote show origin
#显示远程仓库的信息
git remote add [仓库] [url]
#在远程添加一个仓库
git push [远程仓库] [本地分支]:[远程分支]
#将本地分支上传到远程分支
git pull [远程仓库] [远程分支]:[本地分支]
#将远程仓库的远程分支拉到本地分支
git pull = git fetch + git merge
git clone [url]
#克隆仓库
【9】git打标签(git log --decorate=full)
git tag
#显示系统中已有的标签
git tag -n
#显示系统中已有的标签,并显示附加信息
git tag 标签名(如v2.0)
#给当前的commit_id打上一个标签
git tag -a v1.0 -m "message"
#在打标签的时候,添加附加信息
git tag -a v1.1 commit_id -m "message"
#给指定的commit_id添加tag
git tag -d 标签名
#删除标签
git push origin 标签名
#将当前的标签上传到github上
git push origin --tags
#将本地的标签一并上传
git push origin :refs/tags/标签名
#删除远程的标签
git checkout -b 分支名 标签
#新建并切换分支,将标签对应的版本放到当前的分支上
【10】git的比较命令
git diff
#比较工作区和暂存区的差异,已跟踪文件的差异
git diff --cached
#比较本地仓库和暂存区的差异
git diff HEAD
#比较本地仓库和工作区的差异
git diff 分支1 分支2
#比较分支的差异
git diff 版本1 版本2
#比较版本号的差异