版本控制Git命令集合

-------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可以查看相关命令的简版和网页详情版的帮助信息

@版本回滚

  • 既然有了版本的序列号,我们就可以回滚到任意指定的版本了,其命令是:git reset –hard 版本序号
  • 还可以通过git reset –hard HEAD^来回退到最新版的上一版;
  • git reset –hard HEAD^^回退到最新版的上两个版本,这里^可以有任意多个,然而回退三个以上版本时,我们选择使用:git reset –hard HEAD~23来指定具体回退多少个版本;
  • 通过git checkout – filename命令,可以从缓存区或仓库中检出一个指定文件来覆盖暂未提交的同名文件,原则是优先从缓存区检出,缓存区没有再从本地仓库检出;
  • 版本回滚功能在修复代码错误,尤其是复杂或致命错误时具有显而易见的便利性;

@添加版本忽略

需要添加到版本忽略的文件全部记录在.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 # 查看标签信息

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Git)