一、Git 的基本介绍
Git Download
官网
一路next 安装即可。
``
二、工作区、暂存区、本地仓库、远程仓库
三、Git使用前的配置
- 第一次使用Git,需要做的配置
$ git config -l:查看配置
(配置的名字和邮箱最好和GIthub保持一致,必须向Git自报家门,配置好可在.gitconfig中文件中看到)
$ git config --global user.name "xxx"
$ git config --global user.email "xxx@163.com"
- https和ssh协议
https协议:clone代码没有任何限制,push的时候需要输入用户名和密码(缺乏windows凭据管理的时候,会频繁输入)。另外每个项目成员都必需要有一个代码托管平台的账号(工作时:配置组会给分配)
SSH协议:通过非对称秘钥进行认证和加密传输(不需要账号和密码与https不同),利用秘钥生成工具,生成rsa秘钥,将public key 添加到代码托管平台(工作时将公钥交给管理员即可),即可实现clone代码
- 命令行常用指令
$ cd :切换目录
$ cd ../:返回上一层目录
$ clear/cls:清屏
$ mkdir <name>:创建文件夹
$ ls:列出当前目录下的文件和文件夹
$ touch <文件名>:创建文件
$ cat <文件名>:查看文件内容
上下箭头:前进和后退的命令
- 获取Git 帮助
git help:列出常用Git命令及简单说明
git help -a:列出所有Git命令:F下翻,B上翻,Q退出
git help add:浏览器自动打开一个关于git add命令 使用手册页面
- Git的基本操作(必备)
$ git clone [url]:克隆远程仓库
$ git add .:将所有的变化提交到暂存区
$ git commit -m "xxxx":将暂存区代码提至本地仓库
$ git status:在commit之后,查看工作区的代码是否完全提至本地仓库
$ git pull:从远程拉取最新代码合并到本地仓库:为保证代码不丢失,先拉取后推送
$ git push:将本地代码推送到远程
- 分支管理
$ git branch <name>:创建分支
$ git checkout <name>:切换分支
$ git checkout -b <name>:切换并创建分支
$ git branch -d/D <name>:删除分支
$ git merge <name>:合并分支
$ git branch :列出所有本地分支
$ git branch -r:列出所有远程分支
$ git branch -a:列出本地和远程所有分支
- 远程仓库
$ git init :初始化本地仓库
$ git remote -v:查看关联的远程仓库
$ git remote add origin(远程仓库名,一般命名为origin) [url]:关联远程仓库
手动建立追踪本地分支与远程分支(track)关系
$ git push -u origin master<也可以是别的分支名>
:
- 查看提交日志
$ git log:显示从最近的提交记录到最远的提交记录的日志
$ git log -p -2:查看近2次的差异
$ git log -graph:图形化输出提交日志
$ git log --oneline:在一行内显示日志
- 版本回退
下面回退只能回滚不能返回:比如回退到第一次提交,想在回到第四次提交指令就不行了
git reset --hard HEAD^:回退到上一次提交
git reset --hard HEAD~n:回退n次提交n次提交前
下面的指令可以回滚到历史的任意提交历史
$ git reflog:查看最前面的版本号
$ git reset --hard 版本号:可返回git提交的任意一次提交历史
示例:总共有4次提交
配置alias
[user]
email = 178xxxxxx10@163.com
name = CodeStongers
[credential]
helper = manager
[alias]
# 基本操作
cl = clone
ad = add .
cm = commit -m
st = status
ps = push
pl = pull
# 合并
m = merge
md = merge dev
mm = merge master
# 分支操作
co = checkout
br = branch
cb = checkout -b
cd = branch -d
ll = branch
lr = branch -r
# 远程
rv = remote -v
# 查看日志
last = log -1
lgh = log --graph
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset ' --abbrev-commit
# 版本回退
unstage = reset HEAD