-------Git开始启用配置-----------------------------------------------------------------------
@Git的配置
GitBash启动之后,需要将GitHub注册账号时使用的用户名和邮箱进行绑定:
git config --global user.name "xxx" git config --global user.email "xxx"
没有错误提示,即代表绑定成功
-------本地仓库版本控制-----------------------------------------------------------------------
@创建本地仓库
# 进入要初始化的工程目录 cd your_repo_directory # 初始化该目录为本地仓库 git init # 查看当前目录下的所有文件(含隐藏文件和文件夹) ls -a
@本地代码提交
# 添加指定文件到缓存区 git add hello.py git add welcome.py # 添加当前目录中的所有内容到缓存区 git add . # 撤销指定文件的受控状态,但不删除该文件 git rm --cached welcome.py # 递归撤销目录的受控状态,但不删除该文件 git rm -r --cached 新建文件夹 # 递归撤销目录的受控状态并删除该目录 git rm -r --f 新建文件夹(2)
通过git commit xxx -m “提交日志”的方式,可以将缓存区中的代码提交到本地仓库;
# 提交指定文件到本地仓库 git commit hello.py -m '第一次提交代码到本地仓库' # 提交所有未提交的缓存区内容到本地仓库 git commit -am '提交所有内容到本地仓库'
通过git status可以查看当前目录状态,下图显示的是一个未提交的缓存区文件和一个未受控的文件
@版本日志
git log命令可以查看版本日志,git log –pretty=oneline则是以单行样式显示版本日志
git diff 版本序列号1 版本序列号2:比较两个版本的区别,这里的–shortstat选项是以简短样式查看区别;
通过git xxx -h及git xxx –help可以查看相关命令的简版和网页详情版的帮助信息
@版本回滚
@添加版本忽略
需要添加到版本忽略的文件全部记录在.gitignore文件中;
可以使用Notepad++、Sublime、EditPlus等文本编辑器来编辑.gitignore文件并指定其编码为UTF-8;
在Windows系统中需要在git窗口下手动创建--》touch .gitignore
·示例:
下面的.gitignore文件范本添加了mytest.py,随笔.txt,以及temp文件夹下的所有内容到版本忽略中
mytest.py 随笔.txt temp temp/*
-------SSH秘钥配对-----------------------------------------------------------------------
1、本地生成秘钥对:
ssh-keygen -t rsa -C "[email protected]"
在当前目录下生成了一对秘钥,sirouyang为私钥,sirouyang.pub为公钥
2、公钥交由远程仓库持有:
cat XX.pub
生成公钥复制它,并去仓库建立钥匙
setting->new SSH keys
3、本地绑定私钥,并进行配对测试:
# 启动ssh-agent ssh-agent bash # 绑定私钥 ssh-add XX(写绝对路径) # 秘钥配对测试 ssh -T [email protected]
-------同步远程仓库-----------------------------------------------------------------------
@关联并推拉
# 进入本地仓库目录,这个目录是已经被git init过的 cd local_repo_path # 关联远程仓库,远程的版本信息也一并被整合到了本地 git remote add origin your_repo_address # 取消当前的远程仓库关联:git remote rm origin # 拉取远程主分支的代码到本地 git pull origin master --allow-unrelated-histories # 提交所有未受控的代码 git add . git commit . -m "xxx" git commit . -am "xxx" # 将本地仓库的代码(master分支下)推送到远程 git push origin master # 如果前面拉取的动作报出 “拒绝合并不相干的历史”时,追加一个同意放行的参数即可 # 即:git pull origin master --allow-unrelated-histories # 这种错误只有初次拉取时才会发生
@克隆并推拉
# 克隆远程仓库到当前目录 git clone your_repo_address # 拉取远程主分支的代码到本地 git pull origin master # 提交所有未受控的代码 git add . git commit . -m "xxx" # 将本地仓库的代码(master分支下)推送到远程 git push origin master
-------分支管理【相关命令】-----------------------------------------------------------------------
-----↓创建和切换分支-----
git branch // 查看所有分支
git branch 分支名 // 创建本地分支
git checkout 分支名 // 切换到指定分支
git checkout -b 分支名 // 创建并切换到分支
-----↓删除分支-----
git branch -d 分支名 //删除本地分支
git push origin --delete 分支名 // 删除远程分支
-----↓推拉分支-----
git pull origin 分支名 //拉取分支
git push origin 分支名 //推送分支
git push --set-upstream origin 分支名 //推送分支
-----↓合并分支-----
git merge 分支名 //合并分支(要先checkout到主分支)
-----↓查看合并历史-----
git log --graph //查看分支合并图
git log --graph --all // 命令行查看分支合并图
gitk --all // gitk工具查看分支合并图
git gui // gui工具查看分支合并图(启动后:repository-->visual all branch history)
-------分支与合并案例-----------------------------------------------------------------------
关羽克隆项目
关羽创建分支并push
关羽独自开发、提交、push
张飞做和二哥相同的事情
dev分支合并关羽分支
dev分支push
master合并dev分支
master分支push
------------------------------------------------------------------------
# 关羽创建分支、工作、本地提交、push远程
git clone remote_repository_path
git checkout -b guanyu
git push origin guanyu
git add .
git commit -am '关羽在本地提交'
git push origin guanyu
# 张飞创建分支、工作、本地提交、push远程
git clone remote_repository_path
git checkout -b zhangfei
git push origin zhangfei
git add .
git commit -am '张飞在本地提交'
git push origin zhangfei
# dev分支合并关张并push远程
git pull origin dev
git checkout dev
git merge guanyu
git merge zhangfei
git push origin dev
# master主分支合并dev并push远程
git pull origin master
git checkout master
git merge dev
git push origin master
-------打标签-----------------------------------------------------------------------
@标签相关命令
git tag # 查看所有标签 git tag v1.0 # 给当前版本打标签,名称是任意的 git tag -d v1.0 # 删除指定标签(它对应的版本序号依然是存在的) git push origin v1.0 # 推送标签到远程仓库 git push origin --tags # 一次性推送多个标签到远程 git checkout v1.0 # 切换到指定标签所对应的版本 git show v1.0 # 查看标签信息