前言
(1)新手个人建议使用
TortoiseGit
这类图形化界面来上手学习。
(2)如果一定需要用命令行进行操作,可以按照B站:程式与网页开发者必备技能!Git 和 GitHub 零基础快速上手,轻松掌握版本控制的要诀!视频教程来。
(3)上述视频教程讲解的非常好,我这里只是在该视频基础上稍微增加几条可能会使用到的命令。
Github操作
创建仓库
(1)创建仓库。
(2)输入仓库名称,然后创建。
查看仓库提交记录
(1)如果想在
Github
上查看仓库的提交信息,进行如下方法即可查看。
合并分支
(1)如果我们现在有多个分支,在会出现下图这样的情况。
(2)
(3)
(4)
(5)
(6)如果发现没有问题,进行合并
首次使用Git需要设置用户信息
(1)首次在电脑中使用
Git
,需要输入如下两条命令设置当前用户姓名和用户邮箱。
非首次使用Git的用户,不需要执行该操作。
# 设置用户名
git config --global user.name "myname"
# 设置用户邮箱
git config --global user.email "myemail"
常用命令介绍
初始化Git仓库
(1)执行如下操作进行初始化,最终会生成一个
.git
隐藏文件,用于跟踪版本,存储档案变更历史和备份记录。
# 初始化 Git 仓库
git init
查看仓库文件状态
(1)
Git
仓库有四种状态:
- Untracked(未追踪):该状态下,
Git
不会记录他们的内容变更和编辑历史。需要使用git add
命令转换为下一个状态。- Tracked(已追踪):此时
Git
会追踪该文件,但文件内容与上一次提交时的内容相同。通俗来说,它们在上次提交后没有被修改过。需要使用git commit
命令转换为下一个状态。- Staged(已暂存):这时会记录修改后的文件信息。需要使用
git push
命令转换为下一个状态。- Committed(已提交):此时本地仓库和远程仓库同步成功。
# 查看当前目录下文件状态
git status
# 以简短的格式显示当前目录下文件状态,推荐该命令
# ?? : 未追踪(Untracked)
# A : 已追踪,新增文件
# M : 已经被修改的文件,但是没有被暂存
#
git status -s
追踪文件
(1)初始化仓库之后,
Git
需要知道要追踪那些文件,因此可以使用如下命令进行追踪。
# git add : 追踪文件
# . : 追踪当前目录下所有文件
git add .
忽略追踪特定文件
.gitignore文件
(1)在一个工程中,我们可能有一部分文件不需要,例如工程打编译产生的
build/
文件夹。
# 创建一个 .gitignore 文件
touch .gitignore
# 在 .gitignore 文件中加入要屏蔽的文件/文件夹
build/
对于已经追踪打文件取消追踪
(1)该命令用于从
Git
的暂存区(索引)中删除文件或目录,同时保留工作目录中的文件。这意味着文件或目录将不再被Git
追踪,但它们仍然会保留在你的本地文件系统中。
(2)一般是编译的过程文件被误操作追踪,使用该命令进行取消追踪。
(3)虽然说使用该命令可以将文件从Git
的暂存区删除。但是需要注意,执行完该命令之后,还需要将要忽略的文件添加进入.gitignore
文件,防止再次被误追踪。
# git rm: 删除文件或目录。
# -r: 递归删除,即删除目录及其内容。
# --cached: 仅从暂存区删除文件或目录,不从工作目录中删除。
git rm -r --cached <File>
### 示例 ###
git rm -r --cached build/
# 然后进入 .gitignore 文件添加如下内容
build/
提交
(1)当
Git
成功追踪了工程之后,我们需要
# 打开编辑器编写详细提交消息。Ctrl+X退出编辑。
git commit
# 提交简短的更改信息。
git commit -m "first commit"
# 如果上一次提交信息有问题,可以使用该命令进行修改。Ctrl+X退出编辑。
git commit --amend
查看提交信息
(1)我们可以使用如下命令查看提交历史。
# 查看提交历史
git log
# 查看简化版的提交历史
git log --oneline
# 退出查看
q
版本对比
(1)如果出现了问题,我们可以使用如下命令对比版本信息。
# 先使用查看提交 ID
git log --oneline
# 版本对比
# git diff : 进行版本对比
# 8f3b66f : 提交ID
# ./main/hello_world_main.c : 要对比的文件
git diff 8f3b66f -- ./main/hello_world_main.c
版本回退
保留历史记录的回退
(1)如果是因为某个文件的错误导致出现了问题,我们就可以进行版本回退。
(2)该方式能够回退指定文件,并且不会将历史记录进行删除,是属于比较安全的版本回退方法。
# git checkout : 保留历史记录的版本回退
# 8f3b66f : 提交ID
# ./main/hello_world_main.c : 要回退的文件
git checkout 8f3b66f -- ./main/hello_world_main.c
不保留历史记录的回退
(1)如果某个版本出现了问题,但是仅仅只修改特定的文件发现没有成功。我们可以使用如下命令将整个工程环境回退到能够使用的版本。
(2)需要注意,这个操作是不可逆的。如果想知道最新版本的仓库情况,需要重新拉取或者提前备份。
git reset --hard <commit ID>
克隆项目
(1)如果你想获取他人的仓库,可以先按照如下方法获取地址信息。
(2)按照如下方法克隆即可。
git clone <仓库地址>
将本地文件上传至云端
(1)在本地修改工程后,我们还需要将本地的工程推送到云端才可以和其他人一起合作。
git push
将云端文件下载到本地
(1)如果同事将工程进行了修改,我们需要和他们的环境同步,执行下面的内容同步。
git pull
查看分支信息
(1)一个工程可能有多个分支,我们可以使用如下命令查看。
git branch
创建分支
# git checkout : 切换分支
# -b : 创建并切换至新分支
git checkout -b <新分支名>
切换分支
# 查看目前有多少个分支
git branch
# 切换分支
git checkout <分支名>
常用操作介绍
仓库首次创建推送
(1)
git init
git add .
git commit -m <内容>
# 将本地和远端的存储库进行连结
git remote add origin <仓库地址>
# 该操作只是对分支进行一个改名,可以不进行操作
# git branch : 分支管理
# -M : 重命名
git branch -M main
# 执行完下面这条命令之后,刷新仓库页面即可看到本地仓库信息
# git push : 将本地仓库的更改推送到远程仓库
# -u : 设置本地分支与远程分支的关联,即上游分支。这样做的好处是,之后可以简化 git pull 和 git push 命令,不需要每次都指定远程分支。
git push -u origin <分支>
新增工程文件并进行上传
(1)
git add .
git commit -m "增加文件"
# 将这个提交推送至Github
git push
删除工程文件
(1)
git add .
git commit -m "删除文件"
README.md文件
(1)一个开源仓库给他人使用时候,别人是不知道具体信息的,因此需要添加一个
README.md
文件进行说明。
# 创建一个 README.md 文件,并且向该文件内输入# test
echo "# test" >> README.md