git常用操作小结

103 阅读3分钟

1. git常用操作

1. 创建版本库

# 在指定的目录下,执行该命令后,会生成.git文件夹,就是git本地版本库
git init

2. 查看日志记录

# 查看所有的日志记录
git log
# 查看指定文件的日志记录
git log a.txt


# 1. enter:日志较多是,enter翻页查看日志
# 2. q 退出查看日志
# 3. git log --pretty=oneline 如果日志很多,可以将日志放在一行显示,不过会没有提交人等信息

3. 回退到历史版本

# 一次回退一个版本,一个^代表一个版本
git reset --hard HEAD^	# 回退一个版本
git reset --hard HEAD^^ # 回退2个版本

# 如果需要回退n个版本,可以直接写git reset --hard HEAD~n
git reset --hard HEAD~2 # 回退2个版本,等价上面的写法

4. 版本穿梭

# 查看所有的历史操作
git reflog 
# 查看指定文件的所有历史操作
git reflog a.txt
# 回到指定的版本,通过上面reflog找的版本,这种对于我们如果回退了很多版本,后面又想恢复到前面的版本,这种比较好操作
git reset --hard 5721c0e

5. 撤销

# 1. 没有add,commit的撤销
git checkout a.txt

# 2. 有add,但是没有commit的撤销
 git reset HEAD a.txt # 第一步:将文件从暂存区撤销掉
 git checkout a.txt # 第二步:版本库中的文件覆盖本地文件

# 3. 已经add且commit了的文件撤销
git reset --hard HEAD^ #实际上就是直接回退到上一个版本,并将上一个版本作为默认最新版本

2. 分支操作

1. 创建分支:git branch <分支名>

git branch dev2021 #创建分支dev2021

2. 查看分支

git branch -v

3. 切换分支

git checkout dev2021 #切换到dev2021分支

4. 一步完成新建分支以及切换到分支

git checkout -b test2021 #创建test2021分支并切换到test2021分支

5. 合并分支

主干合并分支:主干将分支代码拉取过来,那么先切换到主干,然后执行合并

分支合并主干或者其它:先切换到分支,然后合并待拉取代码的那个分支或者主干

# 切换到主分支
git checkout master
# 主干合并dev2021分支代码,将分支代码拉取到主干上
git merge dev2021

6. 删除分支

git branch -d test2021

3. 版本冲突

1. 查看冲突的文件

git diff

冲突文件内容

 33
<<<<<<< HEAD	# <<<下面的bb是已经在主干上,但是这个位置和分支test2021上修改的内容发生冲突
bb
=======				# ===下面是合并的分支内容
cc
>>>>>>> test2021

修改完冲突后,执行提交

git add a.txt
git commit -m "bug fixed"

2. 协作冲突

先pull更新代码,然后合并冲突,commit本地,push到远程

4. github/gitee实战

image.png

1. 本地创建项目并发布到GitHub、Gitee上

mkdir gitLearn #在本地创建项目工作空间
cd gitLearn #进入项目空间
git init #在项目工作空间下初始化
git config user.name "mayishijie" #本地git版本库关联到github上的用户
git config user.email "mayishijie2020@163.com" #关联到GitHub用户邮箱

2. 在GitHub/Gitee上创建一个项目

git remote add <远端代号> <远端地址>

git push <远端代号> <本地分支名称>

# 在本地项目下创建和远程Git服务项目进行关联
git remote add origin git@gitee.com:mayishijie/git-learn.git 
# 推送本地项目到远程服务,origin就是指代git@gitee.com:mayishijie/git-learn.git地址
git push -u origin master

3. clone远程服务项目

git clone <远端地址> <新项目目录名>

新项目名可以不写,不写默认就是git上的默认项目名

4. 更新远程GitHub上的项目代码

git pull <远端代号> <远端分支名>。

5. fork

image.png

image.png