git基本操作 git高级操作 git配置ssh

2018-11-12 22:08:00
admin
原创 1911
摘要:git基本操作 git高级操作 git配置ssh

一、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

git remote set-url origin git@url:xxx/xxx.git


克隆和提交项目:

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指向当前工作分支,提交对象包含提交快照:
git branch,显示本地分支
git branch -a,显示本地和远程分支
git branch name,创建分支
git branch -d name,删除分支
git checkout name,切换分支
git push origin name,提交分支


忽略规则:

1、#开头为注释;

2、*.c,忽略当前目录和子目录下所有特定后缀的文件或目录;

3、/do,只忽略此目录下的do文件或目录;

4、do/,忽略do目录下的所有文件,如果do是文件则不忽略;

5、!allow.c,不忽略文件,一个文件跑忽略规则,最后一条规则是不忽略则该文件不忽略;

6、doc/*.txt,只忽略doc/*.txt,不忽略doc/*/*.txt;


标签指向一个提交对象:

查看tag列表:git tag

查看tag详情:git show v1.0
新建tag:git tag v1.0,标签不带创建时间,且不带注释,一般代表临时版本;

新建tag:git tag v1.0 -m "my comment",标签带创建时间,且带注释,一般代表发布版本;

新建特定版本tag:git tag v1.0  f1f2f3f4 -m "my comment",f1f2f3f4可以替换成其他版本;

提交特定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目录;

3、HEAD指向本地仓库当前分支最新位置,detached HEAD指向一个提交,不是指向一个分支;

4、FETCH_HEAD指向某个分支上次从远程仓库获取的最新位置,fetch命令更新此引用;

5、ORIG_HEAD指向上次危险操作之前的HEAD,用于异常操作恢复;

6、untrack操作用于取消跟踪已经上传到分支的文件,操作本质是删除暂存区文件的索引;

7、代码比对可以使用官网的Compare工具,源版本需要比目标版本更新,版本可以使用哈希值;

8、支持通过History查看单个文件的历史记录,支持通过Blame查看单个文件的修改构成;


显示版本记录:

1、rev-list中文支持更好,必须指定版本信息;

2、log显示信息更丰富,可选指定版本信息;

3、祖先版本:commit~是父版本,commit~n是第n代祖先版本;

4、版本区间:commit=(,commit],commit1..commit2=(commit1,commit2];

5、git rev-list --oneline head~3..head

6、git log --oneline -10


回滚单个文件:

1、仅回滚工作区的修改:git checkout [commit] <file>,git restore <file>

2、仅回滚暂存区的修改:git reset <file>,git restore --staged <file>

3、checkout支持回滚单个文件到任意历史版本;


回滚整个分支

1、reset回滚会删除提交记录,根据实际需要决定是否备份分支;

2、reflog保留本地仓库操作记录,可以紧急找回丢失的提交记录;

3、reflog不保留在远程仓库,并且保留时间存在限制;

4、git reset --hard resetVersionHash
5、git push -f origin currentBranch


回滚整个分支并保留提交记录

1、回滚参数说明:-n不提交到本地仓库,多个提交的回滚生成一条回滚记录;

2、回滚参数说明:--no-edit不编辑回滚消息,每个提交的回滚都会生成一条回滚记录;

3、回滚最近两次提交:git revert --no-edit head head~1

4、回滚最近两次提交:git revert --no-edit head~2..head


合并提交记录:

1、rebase子命令:pick保留提交,squash合并到前一个提交;

2、合并最近两次提交记录:git rebase -i head~2


三、git配置ssh

1、生成rsa公私钥:ssh-keygen -t rsa

2、PuTTYgen转换公私钥为ppk格式,ppk全称是putty private key,TortoiseGit只支持这种格式私钥;

3、GitHub配置公钥,Pageant配置私钥,Pageant设置成自动启动和自动加载私钥;

4、使用TortoiseGit克隆项目;

发表评论
评论通过审核之后才会显示。