git基本操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git基本操作相关的知识,希望对你有一定的参考价值。

一.如何学习git指令

1.查看帮助:git help
2.查看指定命令:git help clone
3.搜索关键字:/chone
4.退出帮助文档:输入Q

二.常见命令

1.初始化git本地仓库:先进入目标文件夹然后输入git init
2.创建文件:touch car.h
3.查看文件状态:git status
查看最新改动:git diff 文件名
4.添加到git暂缓区:git add Car.h
5.添加多个文件到暂缓区:git add .
6.提交代码:gitcommit -m “说明”
7.第一次需要设置账户的用户名和email

git config --global user.name "xxx" 
git config --global user.email [email protected] 

红色文件:文件没有被纳入到git管理中
绿色文件:文件加入到了‘暂存区’

三.配置账号信息(一般来讲只需配置一次全局的账号即可)

配置局部信息

git config user.name "xxx" 
git config user.email [email protected]

配置全局信息
git config --global user.name "xxx"
git config --global user.email [email protected]

1.如果没有配置过账号信息,那么git会有一个默的账号信息
2.如果配置的是全局信息那么
查看账户信息

cat ~/.gitconfig

修改全局信息

gedit ~/.gitconfig

四.查看日志

1.git log
2.一次显示一行

 git log --pretty=oneline

五:回退版本

如果文件已经被commit 可以通过git reset来回退版本
1.在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:

$ git reset --hard HEAD^

2.回到某个版本:

$ git reset --hard 3628164

3.检出当前分支的最高版本:

git checkout Car.h

4. 用来记录你的每一次命令,可以在这里看到程序

git reflog

5.删除文件

git rm -Car.h
git commit -m “说明”

还原

 git checkout -- Car.h

六.github

1.注册github账号
2.创建SSH key 在用户主目录下,看看有没有.ssh目录
id_rsa 私钥
id_rsa.pub 公钥
3.登陆github 打开setting,SSH key界面,点Add SSH key,填上任意Title,在Key文本框里粘贴id_rsa.pub

4.添加远程库,登陆github创建一个新的仓库,然后根据github的提示,在本地的仓库下运行命令
把本地仓库上传到github仓库 

git remote add origin [email protected]:liushaocong/learngit.git

在本地仓库的内容推送到远程 

git push origin master

从远程库克隆 

git clone [email protected]:liushaocong/learngit.git

5.创建一个分支

git checkout -b dev

#-b表示创建并切换相当于一下两条命令

创建一个dev分支$git branch dev  

切换到dev分支$git checkout dev 

 列出所有分支 当前分支前面加* 

git branch
* dev
master

在dev分支上修改文件

 

切换到master分支

git checkout master

合并指定分支到当前分支

git merge dev

删除dev分支

git branch -d dev 

两个版本文件冲突,首先解决冲突再提交,合并完成

git log --graph --pretty=oneline --abbrev-commit 分支合并图

合并分支时,如果可能,Git会用Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。
如果强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
首先,仍然创建并切换dev分支:

$ git checkout -b dev
Switched to a new branch ‘dev‘

修改readme.txt文件,并提交一个新的commit:

$ git add readme.txt 
$ git commit -m "add merge"
[dev 6224937] add merge
1 file changed, 1 insertion(+)

现在,我们切换回master:

$ git checkout master
Switched to branch ‘master‘

准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

$ git merge --no-ff -m "merge with no-ff" dev
Merge made by the ‘recursive‘ strategy.
readme.txt | 1 +
1 file changed, 1 insertion(+)

因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

合并后,我们用git log看看分支历史:

$ git log --graph --pretty=oneline --abbrev-commit
* 7825a50 merge with no-ff
|| * 6224937 add merge
|/
* 59bc1cb conflict fixed
...

可以看到,不使用Fast forward模式,merge后就像这样:

 

以上是关于git基本操作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

markdown 一堆Git的基本片段

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段