Git使用手册之一

Git使用手册



前言

记录Git的使用,以便下次查询。


一、Git与云仓库账号绑定

设置全局用户名与用户邮箱:

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

对单独的项目设置用户名和用户邮箱:

git config  user.name "Your Name"
git config  user.email "email@example.com"

查看当前设置:

git config --list

修改过密码后清除本地账户信息:

git config –system –unset credential.helper 
//上一条无效,加了一个dash才得以清除
git config --system --unset credential.helper

后面再提交时git会提示重新输入账号信息。

也可以一劳永逸地储存登陆信息到本地,上边记录了你的账号和密码:

git config --global credential.helper store

克隆指定的分支:

git clone -b <a branch name> https://gitee.com/*****.git

二、初步使用

1.创建本地仓库并添加文件

git add file1
git add file2 file3
git commit -m "test add and commit"

如果在commit时未输入-m "something tell what had done",则git会进入vim模式,此时添加本该加上的说明即可:

//按insert进入编辑模式,输入说明:
Just test commit without -m
//按ESC后输入冒号":",可开始输入保存命令:
wq
//回车后回到正常界面

进入vim后按Insert,看左下角

2.远程仓库

关联并上传本地仓库

在本地仓库存在的情况下,还需在云端建立一个空仓库,建成之后,通过如下命令与本地仓库进行关联(以Gitee仓库为例):

git remote add origin git@gitee.com:username/repositoryname.git
git push -u origin "master"
//加了参数-u后,以后即可直接用git push代替git push origin master

第一句关联远程仓库,其中"origin"为远程仓库的代号,可任意自定义。
第二句推送本地提交至远程仓库的"master"分支(双引号无所谓)。

删除关联

当想要删除与远程仓库的关联,进行如下操作,先查看远程仓库信息:

git remote -v

再使用git remote rm <name>根据名字删除,如要删除"origin":

git remote rm origin

三、设置.gitignore文件忽略特殊文件

在仓库根目录下新建名为".gitignore"的文件,并在其中编辑规则即可:

//.gitignore
//排除windows下的缩略图、自定义目录等
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini

# 忽略文件夹
.vscode/

//自定义忽略项
# My configurations:
db.ini
deploy_key_rsa
*.class			//忽略所有.class结尾的文件

如上,当想要添加某个已被".gitignore"文件设置忽略的类型文件时,可选择:
使用git add -f filename强制添加:

git add -f App.class

也可在".gitignore"文件内设置特殊照顾:

//.gitignore
# 不排除.gitignore和App.class:
!.gitignore
!App.class

四、仓库修改、提交流程

  1. 修改代码文件、添加新文件
  2. 将修改过的文件及新添加的文件加入暂存:
git add .
//把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤
git add *
//或者使用*,但会忽略.gitignore把任何文件都加入,一般不使用
  1. 将之前的暂存保存为一次版本待提交:
git commit -m "something about this commit"
//如果所做的修改的文件都已被跟踪(add过了),则可以省略2直接使用合并命令:
git commit -am "something about this commit"
  1. 推送提交至远程仓库:
git push -u origin "master"
//好像 -u 不要也罢,没影响

五、版本回退

在进行git commit操作时,git会自动生成一串git id如:

commit fd284442b0813fe5c8443c69b35a52c67ea27de7

git用HEAD标记当前版本,当需要指向需要的某一历史版本时,使用HEAD^表示回退至上一版本,以此类推,较为久远的版本可以使用HEAD~n(第前n个版本),命令关键字为git reset

git reset --hard HEAD^

而根据git id恢复当前版本的未来版本时使用如下,其中版本的id字符串不必写全,足够识别出该版本即可:

git reset --hard fd284

当无法通过git log找到未来版本的id时,可使用git reflog查看历史命令同样得到可确定的git id前几位:

git reflog

git reflog
撤销工作区的修改:

git checkout -- filename

撤销暂存区的内容:

git reset HEAD <file>

删除某文件:

git rm filename

先手动删除文件,然后使用git rm <file>git add<file>效果是一样的。

如果误删了,手动的或者命令行的,都可以利用git checkout -- filename恢复出来:

git checkout -- filename

六、分支管理

创建分支dev并切换过去:

git branch dev
git checkout dev

一步完成法:

git checkout -b dev

在新版本的git中,为了和撤销修改的git checkout -- filename作区别,也可使用git switch进行分支操作:

git switch -c dev	//创建并切换至dev分支
git switch master	//切换至已有的master分支

查看当前分支状态:

git branch

将当前开发分支推送至远程仓库:

git push origin dev

一般master分支稳定的情况下,在开发分支dev上进行实验性改进,完成后将master与dev合并即可完成功能的更新

一帆风顺地合并了

合并操作如下:

git checkout master
git merge dev

git merge dev 意为合并指定分支到当前分支,故在这之前需要注意将当前工作对象改为要合并的分支。

完成后,删除dev分支:

git branch -d dev

合并有冲突

合并的时候发生了点意外:
合并失败
打开冲突的文件——AllOne.cpp:
git的冲突提示
git用<<<<<<< =======>>>>>>>标识出不同的分支内容,按需要进行取舍。

解决冲突的部分后重新提交,再进行合并就没有问题了,大概。

删除dev分支同上。

普通合并

Git默认会使用"Fast Forward"模式合并分支,合并后分支删除了不会留下任何痕迹

合并时使用--no-ff参数可以禁用"Fast Forward"模式,从而生成一个commit留下分支痕迹

git merge --no-ff -m "merge with no-ff" dev
//同commit需要添加描述信息:-m "merge with no-ff"

推送至远程仓库时冲突

推送失败
先尝试从远程仓库拉取内容:
远程拉取
发现远程与本地文件自动合并也失败了,同分支冲突,手动解决冲突内容先:
解决云端与本地的冲突
然后暂存——提交一条龙,完成后再重新push就成功了。

顺便一提,拉取远端仓库的dev分支添加参数即可:git pull <remote> <branch>,如下:

git pull origin dev

而指定本地dev分支与远程origin/dev分支的链接则如下:

git branch --set-upstream-to=origin/dev dev
//当前是dev分支的前提下。。。?

拉取发生冲突(git pull)

git stash //将改动藏起来
git pull 
git stash pop //将刚藏起来的改动恢复

不保留当前未提交的修改:

git reset --hard //撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本
git pull

七、标签与版本

本地部分操作:

在需要打标签的分支上,使用git tag <version>即可,如:

git tag v1.0

不带参数的命令即为查看当前存在的标签:

git tag

标签默认是打在最新提交的commit上的,若要对历史的commit打标签,需要使用历史提交的commit id,假设需要打标签的 id 是"f52c633",则操作为:

git tag v0.9 f52c633

使用 git log --pretty=oneline --abbrev-commit查询历史commit id

创建带有说明的标签,可使用参数-a指定标签名,参数-m指定说明内容,commit id 则在命令的最后,如下:

git tag -a v0.1 -m "version 0.1 released" 1094adb

打错了标签,需要删除,使用-d参数即可:

git tag -d v0.1

云端部分操作:

上述情况都仅限于标签存储在本地,推送指定标签至远端可操作如下:

git push origin v1.0

或者一次性推送所有本地标签至远端有:

git push origin --tags

此时若需要删除标签,应先删除本地标签,再删除远端仓库部分:

git tag -d v0.9
git push origin :refs/tags/v0.9

此处删除远端仓库标签的命令格式为:git push origin :refs/tags/<tagname>


最后、其他常用指令及说明

1、查看当前仓库状态:

git status

在这里插入图片描述

其中红色提示代表已跟踪文件做出了修改但并未暂存;
而进行git add .操作后绿色提示代表修改已添加进暂存。

2、清屏:

直接Ctrl+L

3、查看git历史记录:

git log

在这里插入图片描述
只看简要信息可加上参数--pretty=oneline

git log --pretty=oneline

4、查看分支合并图:

git log --graph

5、查看已有标签:

git show <tagname>

总结

没有总结,学无止境,要用其它了再继续。

诸多参考:廖雪峰的git教程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值