最广泛使用的代码管理工具git的使用流程和使用方法,包括了本地的基本操作,分支操作和基于云端的远程操作。
创建git仓库
首先安装git:
sudo apt-get install git
进入需要管理代码的目录下,初始化git仓库:
git init
如果是从云端下载仓库(github,gitlab,gitee)可以直接使用git clone:
git clone <url> #url为云端链接
编辑仓库
本地编辑
修改
在正常修改代码后,我们需要将修改后的文件先添加到暂存区再创建版本记录:
git add <文件名1> <文件名2> #逐个添加,也可用空格隔开一次添加多个
git add . #添加所有被改动的文件
git commit -m "版本名" #注意版本名用双引号
创建了新版本之后我们可以使用git log查看以往的所有版本信息,这里有一个比较完整的指令,可以简洁直观的查看:
git log --pretty=oneline --abbrev-commit --graph
查看效果:
* 211415b (HEAD -> master) Version1
* 785e4f3 (origin/master, origin/HEAD) feat: init commit
* 69e7299 Initial commit
根据git log看到的版本号(如上211415b)我们可以使用git reset切换版本:
git reset --hard 版本号
如果忘记版本号可使用reflog查看所有操作,找到对应版本号:
git reflog
储藏
git stash #储藏未完成的编辑
git stash pop #释放储藏的编辑
清除改动
如果对于当前改动不满意,想要清除改动,分为两种情况:
1. 改动文件还未add:直接使用git checkout
git checkout -- 文件名
2. 改动文件已经add: 先reset后checkout
git reset HEAD 文件名 #取消暂存
git checkout -- 文件名 #丢弃改动
其他指令
在管理的过程中还有一些常用的指令:
git status #查看仓库状态,是否有改动,版本是否最新
git diff ID1 ID2 文件名 #查看不同,这里ID1和ID2可以是版本的,也可以是分支的,可以使用文件名指定具体文件
git rm #删除文件,与rm不同,git rm会同时将删除的文件添加到暂存区
分支操作
创建分支:创建和切换分支可以直接使用一条指令
git checkout -b 分支名 #创建分支并切换至此
git branch #查看分支
git checkout 分支名 #切换分支
在分支中的编辑操作与直接在本地编辑相同,在编辑完成后,需要将分支与master合并。
git merge 分支名 #与指定分支合并,注意必须先切换至其他分支。
git branch -d 分支名 #删除分支,强制删除可用-D,一般不推荐
git merge --no-ff -m "版本名" 分支名 #禁用faster-foward,保留分支提交记录
远程库
对于云端的远程库,我们需要让它和本地联动起来
本地没有,云端下载:
git clone <url> #url为云端链接
本地已有,同步至云端空库:
git remote add origin <url>
之后在本地的操作与之前相同,在每次同步时使用push和pull
git pull #当远程库发生改变时同步到本地
git push #将本地编辑完的代码推送至远程库,在push之前最好先pull一次解决冲突,防止push失败
git submodule update --remote #更新子模块代码