一.Git
1.使用Git之前要配置用户名和Email
git config --global user.name "Hou Mingjie"
git config --global user.email 846151127@qq.com
用git config --global --list查看配置好的信息
2.基本概念
-
工作目录:存放修改文件的目录。
-
暂存区:用于暂存一次提交中的所有修改。
-
代码库:保存代码的目录。
-
提交:将修改保存到代码库。
-
检出:将文件内容从代码库恢复到工作目录。
3.提交流程(上传到本地代码库)
(1).创建工作目录
1.使用操作系统命令创建空目录
2.进入空目录,执行以下命令初始化工作目录(不初始化不叫工作目录),创建本地代码库
git init
本地代码库是工作目录中的一个隐藏目录.git
(2)在工作目录中增加文件
(3).查看工作目录状态
>git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
注:未跟踪的文件指在工作目录中但未添加到暂存区的文件
(4).将未跟踪的文件添加到暂存区
>git add hello.c
(5).提交修改
>git commit
git会打开文件编辑器,让用户编写提交信息。如果不写提交信息,默认不给提交。
>git status
On branch master
nothing to commit, working tree clean
注:如果工作目录里的内容(代码)与缓存区中的最新版本一致,则不用提交称clean.
5.1修改工作目录中已跟踪的文件,Git会检测到文件被修改
>git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: hello.c
5.2先将修改添加到暂存区
>git add hello.c
>git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: hello.c
5.3提交
>git commit
[master d4d1988] 第二次提交
4.查看提交信息
1.查看提交历史
>git log
注:
-
每次提交会产生一个版本,版本的唯一标识是提交id,完整的提交id是40个字符的随机字符串,简化的提交id是完整的提交id的前7个字符。
-
Git命令中既可以使用完整的提交id,也可以使用简化的提交id。
2.查看修改的内容
1.比较工作目录中的文件和暂存的内容之间的差异
>git diff
2.比较暂存区中的内容和代码库中最新版本之间的差异
>git diff --cached
3.比较代码库中指定版本和最新版本之间的差异
>git diff 提交id
等价于>git diff 提交id HEAD
HEAD指向下一次提交的父节点,一般指向最新版本。
4.比较代码库中不同版本之间差异
>git diff 版本1提交id 版本2提交id
5.给版本打标签
注:
-
可以在Git命令中使用HEAD指针或者标签代替提交id
-
HEAD指针后加一个表示HEAD指向的版本的上一个版本,两个表示上两个版本,多个可以写为数字。代码提交前需要编译和测试通过,不能提交未完成的代码。
5.检出文件(把提交的内容下载下来)
>git checkout 提交id/标签/HEAD ./文件名
注:文件名如果是**.**,则是检出所有文件
1.撤销上一次提交(本质是把HEAD指针指向上一个版本)
>git reset HEAD~
2.在新版本中删除文件
1.在工作目录中删除文件
>git rm 文件名
2.给文件重命名
>git mv 旧文件名(带.c) 新文件名(带.c)
>git commit -a
6.分支
分支可以看作是代码库的副本,当前分支的内容会自动检出到工作目录中
创建分支
>git branch 分支名
查看分支
>git branch
切换分支
>git switch 分支名
合并分支(把当前分支与分支合并到当前)
如果各分支修改了同一函数的不同行时才能合并,都修改了同一行需要人工手动合并。
git merge 分支名
远程代码库
新建远程代码库
新建仓库
远程代码库创建完成后,使用git remote命令和本地代码库关联
>git remote add gitee.com https://gitee.com/hhhmj/23051-test-code-repo
注:gitee.com 是远程代码库的名称,一个本地代码库可以关联多个远程代码库(gitee和github),作用是备份。
将本地代码库中的分支推送到远程代码库,并将远程代码库作为上游分支
>git push --set-upstream gitee.com master
注:第一次推送时需要输入托管网站的用户名和密码,后续再推送不需要。
第一次推送时需要指定远程分支名称,后续推送不需要指定远程分支名,自动推送到关联的上游分支。
>git push
将远程代码库复制到本地
>git clone 要下载的连接
注:只复制默认分支
最后提交拉取请求(Pull Request)
游分支*
>git push --set-upstream gitee.com master
注:第一次推送时需要输入托管网站的用户名和密码,后续再推送不需要。
第一次推送时需要指定远程分支名称,后续推送不需要指定远程分支名,自动推送到关联的上游分支。
>git push
将远程代码库复制到本地
>git clone 要下载的连接
注:只复制默认分支