目录
一、Git基础知识
1、GIT下载安装
网上搜索git就能找到下载安装包,
Windows安装包:Git2.28.0.1x64.exe
可视化界面:TortoiseGit-2.11.0.0-64bit.msi -------> 不建议使用,建议使用命令方式操作
Windows环境变量配置:(根据个人实际安装目录配置)
C:\Program Files\Git\cmd
D:\software\TortoiseGit\bin
安装和配置好以后,输入以下命令可查看版本信息:
git -version
使用帮助命令:git help <command>
Git 常用的命令:
git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。
2、GIT生成SSH公钥
ssh-keygen
默认存储位置:~/.ssh/id_rsa.pub
3、配置邮箱和用户名
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --global –list :检查上述设置是否成功:
4、创建仓库和克隆代码
创建仓库
git init
克隆代码:
git clone <repo> <directory>
5、提交与修改
git add :添加文件到仓库
git status :查看仓库当前的状态,显示有变更的文件。加参数-s可以精简显示
git diff :比较文件的不同,即暂存区和工作区的差异。
git commit :提交暂存区到本地仓库。参数:--amend,重新修改日志内容
git reset :回退版本。参数:--hard HEAD
git revert :撤销指定的提交。
git rm :删除工作区文件。
git mv :移动或重命名工作区文件。
6、分支管理
基线分支以板型来建立,一个板型一个分支,一般由主负责人创建;
如:目前ZT101,ZT102,可直接创建分支名为ZT101、ZT102。下面以分支名ZT102、ZT102_tmp为例:
6.1、分支管理
创建分支 :git branch ZT102
创建切换新分支 :git checkout -b ZT102
: git checkout -b ZT102 master
分支切换 :git checkout ZT102
查看所有分支 :git branch –a
分支重命名 :git branch –m ZT102 temp
分支删除 :git branch -d ZT102
删除远程分支 :git push origin --delete ZT102
分支合并 :git merge ZT102_tmp(非当前所在分支)、
git push -u origin ZT102(当前所在分支)
6.2、合并冲突
常见于git pull、git merge等本地拉取,分支合并的操作。比如修改同一文件的同一区域,不同成员对同一文件重命名等现象。如下图:
1)简单的冲突,可以借助git diff,直接修改冲突文件,或者可以通过beyond compare等工具比较修改冲突文件,再重新add,commit。
2)各类冲突一起发生,比如文件内容,文件重命名等,可利用mergetool,工作中很少需要用到。
查看哪些文件出现合并冲突:git ls-files –s
针对以上情况,常用的解决办法是先保留自己的修改,再针对性去修改。
git stash #先将本地修改存储起来
git pull #暂存了本地修改之后,就可以 pull 了
git stash pop #还原暂存的内容
针对冲突文件去解决冲突的地方,再重新git add。
git add .
git reset --hard HEAD
git rebase –abort:放弃合并,回到rebase操作之前的状态,之前的提交的不会丢弃;
7、Git标签
添加标签:git tag
-a 选项意为"创建一个带注解的标签"。 不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。如git tag -a v1.0
-d 选项为删除标签。
追加标签git tag -a v0.9 85fc7e7(commit id)
查看标签
git log –decorate
git tag
8、查看日志
git log
查看简洁日志 :git log --oneline
逆序查看日志 :git log --reverse
指定用户日志 :git log --author=用户名
查看特定时间日志 :git log --after="2020-9-20" --before="2020-11-25"
git log --since="2020.9.20" --until="2020.11.25"
git whatchanged:查看日志涉及文件改动,回车直接查看全部修改,或者加log id查看特定修改
git whatchanged
git whatchanged 040ae967b9677f9b841ce7cfc79a6dcc740ccf3e
git show:查看文件修改内容,回车直接查看当前最新log id所有文件修改,或直接log id所有修改,或者加log id再加需要查看的文件
git show
git show 040ae967b9677f9b841ce7cfc79a6dcc740ccf3e
git show 040ae967b9677f9b841ce7cfc79a6dcc740ccf3e apps/main/apps.cpp
git reflow:查看操作命令历史,得到每次操作的id,根据commit id回退版本,借助git reset –hard回退版本。
9、远程操作
git remote :远程仓库操作
git fetch :从远程获取代码库
git pull :下载远程代码并合并
git push :上传远程代码并合并
10、代码提交流程
1)获得修改文件列表
在修改的模块目录下,执行命令:
git status .
会列出发生变动的文件列表,如下图
其中Untracked files:一栏为新添加的文件。
2)添加需要上传的文件
对于新添加的文件必须执行以下命令:
git add config/test.txt
执行好后,新增加的文件的字体会变为绿色,如下图:
3)提交需要上传的文件
如果仅需要提交改动的文件,即在图五步骤时,只需要执行以下命令上传对应的文件即可:
git commit config/test.txt config/best2300p_ibrt_anc/target.mk config/best2300p_ibrt_anc/tgt_hardware.c config/best2300p_ibrt_anc/tgt_hardware.h
如果当前目录仅有改动的文件,不包含新增的文件,或者可执行如下命令来上传当前目录下的所有改动:
git commit .
执行命令后,会打开vi界面,来填写改动的相应信息,如下图:
填写完对应log信息后,然后保存退出。
这时可以通过以下命令查看新提交代码的log,如图六:
git log .
4)上传代码到远端服务器
在代码目录下执行以下命令,即可把之前步骤中提交的修改,上传到远端服务器,
$git push origin 分支名
11、commit提交注意事项
- 在push之前,先git pull –r,防止不是最新代码,出现merge信息,或者代码冲突。
git commit --amend
二、Github
远程仓库,可以分享自己的代码或者与其他开发人员合作。
官网:GitHub: Where the world builds software · GitHub
可自行注册,登录,搭建个人服务器。
三、Git服务器搭建
略,网上有相关教程。