git客户端安装及基本操作 git高级操作 git配置ssh
- 2018-11-12 22:08:00
- admin
- 原创 1436
一、git客户端安装及配置
下载:https://gitforwindows.org/,https://tortoisegit.org/download/
运行:目录右键点击Git Bash Here
配置用户:需要替换成你自己的git账户
git config --global user.name xiangfeineng
git config --global user.email xiangfeineng@163.com
git config --list
列出远程仓库:
git remote -v
origin git@git.wb.local:isd/rdst.git (fetch)
origin git@git.wb.local:isd/rdst.git (push)
克隆和提交项目:
git clone https://github.com/xiangfeineng/test.git
cd test
touch readme.txt
git add readme.txt
git commit -m "my commit",提交到本地
git commit --amend -m "my commit",修改上次提交
git push origin master,提交到远程
分支仅仅是一个指针,HEAD指向当前工作分支,commit对象包含提交快照:
git branch 显示本地分支
git branch -a 显示本地和远程分支
git branch name 创建分支
git branch -d name 删除分支
git checkout name 切换分支
git push origin name 提交分支
忽略规则:
1、#开头为注释;
2、*.c,忽略当前目录和子目录下所有以.c结尾的文件或者目录;
3、/do,只忽略此目录下的do文件或者目录;
4、do/,忽略do目录下的所有文件,如果do是文件则不忽略;
5、!allow.c,不忽略allow.c文件,一个文件跑忽略规则,最后一条规则是不忽略则该文件不忽略;
6、doc/*.txt,只忽略doc/do.txt,不忽略doc/do/do.txt;
git标签tag:创建代码标签,指向一个具体的提交
查看tag:git tag
查看tag详情:git show v1.0
新建tag:git tag v1.0,不带tag创建时间,不带tag注释,一般代表临时版本;
新建tag:git tag v1.0 -m "comment message",带tag创建时间,带tag注释,一般代表release版本;
历史版本tag:git tag v1.0 c98c5fb -m "comment message",c98c5fb可以替换成其它历史版本;
提交tag:git push origin v1.0
提交所有tag:git push origin --tags
删除本地tag:git tag -d v1.0
删除远程tag:git push origin --delete v1.0
同步远程删除的分支和tag:git fetch --prune --prune-tags,新建的分支不会被删除,新建的tag会被删除;
获取指定tag的代码:git fetch origin tag v1.0
二、git高级操作
1、工作区域分为:工作区、暂存区、本地仓库、远程仓库;
2、工作区是本地的文件,本地仓库是隐藏的.git目录,暂存区是记录当前分支所有文件hash值的文件;
3、HEAD指向本地仓库当前分支最新位置,detached HEAD指向一个提交,而不是指向一个分支;
4、FETCH_HEAD指向某个分支上次从远程仓库获取的最新位置,fetch命令更新此引用;
5、ORIG_HEAD指向上次危险操作之前的HEAD,用于异常操作恢复;
6、untrack操作用于取消跟踪已经上传到分支的文件,操作本质就是删除暂存区文件索引;
7、代码比对可以使用github网站的compare工具,比对的源版本需要比目标版本更新,版本可以使用hash值;
8、支持通过history查看单个文件的历史记录,支持通过blame查看单个文件的修改构成;
显示版本记录:
1、rev-list中文支持更好,必须指定版本信息;
2、log显示信息更多,可选指定版本信息;
3、版本区间:commit1..commit2=(commit1,commit2],commit=(,commit];
4、相对版本:commit~n,commit前面的倒数第n个版本;
git rev-list --oneline head~3..head
git rev-list --oneline 5aacb02..74c199c
git log --oneline -10
单个文件回滚:
1、仅回滚工作区的修改:git checkout <file>...
2、仅回滚暂存区的修改:git reset <file>...
批量文件回滚:
1、保证本地分支和远程分支一致;
2、reset回滚会删除提交记录,根据实际情况决定是否备份当前分支;
3、git reset --hard resetVersionHash
4、git push -f origin currentBranch
三、git配置ssh
1、ssh-keygen -t rsa,生成rsa公私钥;
2、PuTTYgen工具转换rsa公私钥到ppk格式,ppk全称putty private key,TortoiseGit只支持ppk格式私钥;
3、github配置公钥,Pageant配置私钥,Pageant需要设置成自动启动和自动加载私钥;
4、使用TortoiseGit克隆ssh协议的项目;