[toc]
Git
常用命令:
列表显示所有配置
git config --list
设置用户名
git config --global user.name "username"
设置邮箱
git config --global user.email "myeamil@xxx.com"
创建本地仓库:
方法1:在本地创建本地仓库
新建本地仓库(创建工作区):git init
方法2:把远程仓库clone到本地,会自动在本地创建本地仓库
git clone url
关联远程仓库
//origin代表远程仓库在本地的标识
git remote add origin https:/xxx.xxx.git
将本地仓库代码推送到远程
//推送到指定远程url的master分支上
push push origin master
查看分支
git branch
将远端的代码以及相关分支信息clone到本地
将远端的代码以及相关分支信息clone到本地
查看当前工作区中文件状态
git status
修改全局配置
git config --global user.name "yourName"
git config --global user.email "yourEmail"
在github创建远程仓库
....
git 分区
工作区
即.git所在的文件夹。
创建方式:
git init
暂存区/索引区/缓存
通过 git add命令即可将代码从工作区放到暂存区
//将当前目录所有文件添加到暂存区(自动忽略.gitignore配置的文件)
git add *
版本区
从暂存区提交到版本区
git commit -m "msgs ..."
//-m 要添加的代码注释说明
忽略文件
在仓库文件根目录下创建.gitignore文件,在其中配置要忽略的文件。
==注意==在window上创建该文件可能出错,因为windows对文件名开头带点的命名限制问题,此时可以在命令行或IDE中创建:
//git命令创建gitignore文件
touch .gitignore
gitignore内容如下:
//.gitignore
.idea //匹配任何目录下的.idea文件
/.idea //匹配根目录下的.idea文件
/node_modules //匹配根目录下的node_modules文件夹
分支
查看分支
git branch
根据当前分支代码创建新分支
//新分支名字dev
git branch dev
切换分支
//切换到dev分支(即把本地仓库区中的dev分支代码检出到工作区)
git checkout dev
拉取与拉检出并切换分支:
//拉取远程dev分支到本地(直接更新工作区内容)
get pull origin dev
//将本地仓库中的origin指向的dev分支检出并切换到新创建的dev-crb分支上(前提dev-crb分支不存在)
git checkout -b dev-crb origin/dev
比较两个分支 git diff
语法:git diff 分支1最新版本(或当前分支版本号) 分支2最新版本(或当前分支版本号)
如 master跟dev比较
git diff dev master
输出信息中
+表示分支2相比较分支1增加的部分
-表示分支2比分支1缺少的部分
比较差异,输出统计信息
git diff dev master --stat
合并分支
git merge xxx
将xxx分支合并到当前分支上
冲突解决
fetch
pull拉取时会自动合并
fetch拉取远程到本地指定分支,后续需要手动合并
git fetch origin dev dev:tmp
git merge tmp
时光穿梭
git log
显示当前版本前的所有提交日志
git reflog
显示所有操作日志,包含merge、checkout、commit等操作的日志。
回到指定版本
git reset --hard 提交编号
回到最新的提交点,需要先用命令 git reflog查看最新提交节点的提交id,然后再执行以下命令:
git reset --hard 最新的提交版本id
回到上一个版本
git reset --hard HEAD^
里程碑 (TAG--标签)
记录(标记)某一个或某几个重要的版本,会对这个版本做一个Tag来标识,如 v1.0.0、v1.0.1,
常用操作:
//给当前版本打TAG
git tag v0.3
//给先前某个提交id打上TAG
git tag v0.2 提交id
//查看所有TAG(里程碑)
git tag
//推送指定TAG(v0.3)到远程
git push origin v0.3
//检出指定tag的代码
git checkout <tagname>
由于我们打tag时是对应一个分支的某次提交id的,所以tag跟commint id是绑定的,一般的,我们只会在master分支上的某些提交节点打入tag,标记某些功能添加或bug修复后的重要节点, 其他分支可以直接根据tag名来检出指定的节点代码。
==常见问题==:
如果在拉取dev分支时提示错误,很有可能是本地有代码修改,但没有提交到本地仓库,此时可以先提交本地仓库再拉取。
如果在推送dev分支到远程dev时失败,则可能出现了冲突,修改有冲突的代码,修改完毕后按正常程序推送到远程即可。推送完毕后,需要在远程或本地的master分支中合并dev分支推送的代码。
git生成公私钥命令:
//打开git bash,在控制台中输入以下命令
ssh-keygen -t rsa -C "youremail@example.com"
//默认会在C:\Users\YourName\.ssh文件夹中生成公私钥