- Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
- Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git基本命令
1. GIT 工作区
add commit
working directory- index(stage)- HEAD
| | |
| | |
工作目录 暂存区 版本库
2. 状态
git status # ++ 1
git diff # ++ 2
3. 记录
git reflog
git log # ++ 3
恢复文件到修改前版本
git checkout "5bb4f8e~1" test.conf # ++ 4
git checkout d835c65 test.conf # ++ 5
1. 分支操作
git branch -r # 列出远程分支 ++ 6
git branch -d branch # 删除本地分支 ++ 7
git branch -d -r branch # 删除远程分支
git branch # 查看当前分支
git branch dev # 创建分支
git checkout dev # 切换分支 ++ 8
git checkout -b dev # 创建并checkout分支
git checkout -b dev origin/dev # 从远程分支创建本地分支
git checkout HEAD~1 -b dev # 从当前分支的某一个commit开始创建新分支
git branch -d dev # 删除分支
git pull # 拉去远程分支并合并到本地分支
git push origin master # 推送本地分支到远程仓库
git push origin master -f # 强制以本地分支版本替换远程分支
git reset --hard HEAD~1 # 强制回退到某个提交历史节点 ++ 9
## 分支合并
git merge dev # 合并分支 ++ 10
git branch -v # 查看各个分支最后一个提交对象的信息
git branch --no-merged # 查看尚未合并的工作
2. 提交和推送
# 重写提交历史
git add # 添加工作区内容到暂存区 ++ 11
git commit -m "branch test" # 把暂存区内容提交到版本库 ++ 12
git commit --amend # 追加提交到上一个版本 ++ 13
3. 工作现场
git stash # 保留工作现场 ++ 14
git stash pop # 返回工作现场 ++ 15
4. 标签
git tag v1.0 HEAD~1 # 创建标签,默认为HEAD
git tag -a v1.0 -m "msg"# 创建标签并指定标签信息
git tag # 查看所有标签
git show v0.1 # 查看标签对应版本的信息
git tag -d v0.1 # 删除标签
git push origin v1.0 # 推送标签到远程分支 ++ 16
git push origin --tags # 一次性推送全部尚未推送到远程的本地标签
# 删除远程标签
git tag -d v1.0
git push origin :refs/tags/v1.0
Git 服务配置不同的私钥
cat >> ~/.ssh/config << EOF
# Host *.workdomain.com
# IdentityFile ~/.ssh/id_rsa.github
# User git
Host git.coding.net github.com 172.16.0.*
User username
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.github
EOF
git 本地项目添加多个远程仓库
# 第一种方式:
## 添加远程库
git remote add github https://github.com/darebeat/k8s.git
git remote add gitee https://gitee.com/darebeat/k8s.git
## 查看远程库及地址
git remote -v
## 拉,推
git pull github/gitee <远程分支名>:<本地分支名>
git push github/gitee <本地分支名>:<远程分支名>
# 第二种方式:(好处是,推送时,可以同时推送到另外一个库)
## 添加另外一个远程库
git remote set-url --add origin https://github.com/darebeat/k8s.git
## 推送
git remote -v
git push origin master:master