1、git简介
Cvs:始祖,集中式,1985年
Svn:集大成者,集中式,2000年
Git:geek主流,分布式,2005年
Github:geek社区,托管网站,2008年
Windows下载git安装包,默认安装;
Linux:yum install git完成安装。
安装完成后设置git用户信息:
$ git config --global user.name "yourname"
$ git config --global user.email "youremail"
查看git配置信息:
git config --list
生成公钥:
$ ssh-keygen -t rsa -C "youremail@163.com"
2、常用命令
2.1. 初始化:
git clone url:克隆项目
git init:将当前目录用git进行管理,创建代码库
git status:查看仓库状态
git remote add origin url:关联远程仓库,clone的会自动关联
2.2. 增删查与提交
git add :添加指定文件/目录到仓库暂存区
git add file1 file2 :添加指定文件到仓库暂存区,eg:git add hit.txt 将hit.txt文件添加到git仓库,多个文件使用空格隔开
git add dir:添加指定目录到仓库暂存区
git add .:将当前路径的所有文件添加到暂存区
git rm:删除指定文件
git rm file1 file2:删除工作去文件,并且将本次删除放入暂存区
git rm --cached file:停止追踪指定文件,该文件会保留在工作区
git mv:文件改名
git mv fileOldname fileNewname:修改文件名称,将修改放入暂存区
git log:打印git仓库提交日志详细信息,包括姓名和日期等
git log --pretty=oneline:查看简化日志,只显示commit信息
git diff:查看暂存区文件与仓库文件之间的不同修改
git diff --cached file:显示暂存区和最新commit的差异
git diff HEAD:显示工作区与当前分支最新commit的差异
git reflog:当前的版本号
git show commitId:某次提交的元数据和内容变化
git commit -m "信息描述": 提交暂存区到本地仓库;结果显示“nothing to commit, working tree clean”,这表示已经没有内容可以提交了,即全部内容已经提交完毕。
git commit file1 file2 -m "信息描述":提交暂存区指定文件到本地仓库
git commit -am "信息描述":提交工作区修改的文件,新增的文件需要使用add,然后提交
git commit --amend -m "信息描述":上次提交没有推送到远程仓库,现在没有修改内容,可使用次命令修改上次的信息描述
2.3. 分支管理
git branch:查看git所有本地分支情况,*表示当前所在的分支
git branch -r:查看所有远程分支
git branch -a:查看所有本地和远程分支
git branch branchName:创建分支branchName
git branch -b branchName,创建分支branchName并切换到branchName分支
git checkout:切换分支,输入git checkout a,切换到a分支,并更新工作区
git checkout -m/M oldBranchName newBranchName:重命名分支
git branch --track localBranch remoteBranch:新建本地分支与远程分支关联
git branch --set-upstream localBranch remoteBranch:指定现有分支与远程分支关联
git merge branch:合并指定分支到当前分支,eg:切换到master分支,输入git merge a,将a分支合并到master分支
git cherry-pick commitId:将一个commit合并到当前分支
git branch -d /D branch:删除分支,eg:git branch -d a ,删除a分支
git push origin --delete branch:删除远程分支
2.4. 标签管理
git tag:列出所有的标签
git tag tagName:新建标签在当前提交,eg:输入git tag v1.0命令,新建一个标签在当前commit
git show tagName:查看tag信息
git push remoteName tagName:提交指定tag到远程仓库
git checkout -b branchName tagName:新建一个分支,指向某个tag
2.5. 同步与回退
git remote -v:显示所有远程仓库
git remote show remoteName:显示某个远程仓库的信息
git remote add origin url:将本地仓库和远程仓库origin 关联起来
git pull origin branchName:同步远程和本地分支,eg:git pull origin master:将origin和本地master同步
git fetch origin:下载远程仓库origin的所有变动
git push origin branchName:推送本地指定分支到远程仓库
git push origin -all:推送所有本地分支到远程仓库origin
git checkout file:使工作区文件回到最近一次commit或者add的状态
git checkout commitId file:恢复某个提交的某个指定文件到工作区
git checkout .:恢复上一次commit的所有文件到工作区
git reset file:重置暂存区的指定文件,与上次commit一致,工作区不变,相等于取消add操作
git reset --hard:重置暂存区与工作区,与上次提交保持一致
git reset commitId:重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset --hard commitId:退回到某个到状态,hard当前环境版本的指针,暂存区和工作区都重置
git push origin feature-wapRevision --force:回退feature-wapRevision远端
git教程:
https://blog.csdn.net/column/details/15027.html
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000