lab使用的是gitlab作为项目管理,说实话,因为我之前的工作没有涉及到git,所以git这一块的知识我也是从零开始学,学习了一天后,大致摸索得到了git的基本用法。我的系统为ubuntu,下面都是在ubuntu上的工作。
git的安装
在开始安装之前,建议弃用apt install的安装方式,改用aptitude install,这样可以解决安装时依赖缺失的问题。
git的安装网上有教程大同小异,值得注意的是,如果你需要vscode作为默认编辑器,在安装完毕后,输入
git config --global -e
将config中core选项中改为
按照要求输入用户名和邮件即可。
gitlab是私有的代码仓库,所以你必须将自己的ssh秘钥和gitlab关联。
秘钥一般在 C:/user/username/.shh/id_sra.pb 中保存,linux在用户文件夹下.ssh中保存
git的使用
如果对某个项目有权限,直接clone到本地,如果没有权限,先将其fork到自己的代码仓库中,再将fork的项目clone下来。
git clone git@codexxxxxxxxxxxxxxx
git到本地的项目已经初始化了,不要再用git init了
对文件修改后,需要及时进行commit:
git add fuck_git.md git commit -m "fuck git!"
如果你想建立一个备份,可以试一试分支,分支就是将相当于一个树杈,你的工作在分支处进行了分叉。
git checkout -b <branch_name>
撤销提交
git log # find commit id git revert commit_id
或者直接
git revert HEAD
撤销一次撤销,就是再一次revert:
git revert HEAD # revert once git revert HEAD #revert the revert
远程合作开发
当你写好代码后,你肯定想push到你的远程仓库,我们用push命令:
git push origin <本地分支名>:<远程分支名>
origin 是你的远程仓库名,在clone项目时,git帮你把它取名为origin,当然你可以用remote命令进行改名。
但是问题来了,你发现你push不上去,有报错:
! [rejected] brc -> br (fetch first)
error: failed to push some refs to
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
提示,你需要fetch一下,为啥呢?因为你的远程仓库中的该分支已经前进了,换而言之就是该仓库的该分支在
你clone后已经更新了,可能是你的其他分支将它更新的,也有可能是其他开发者将它更新的,总之,它已经不是原来的分子了。
所以在执行push命令前,需要执行fetch命令:
git fetch origin <远程分支名> #拉取该远程分支 git checkout origin/<远程分支名> #你当然想看看更新的远程分支里有啥 git checkout <本地分支> #你已经看好了,所以回到本地分支 git merge origin/<远程分支> #于是你将更新的内容添加到你的本地分支内
实际代码中分支名不需要加<>,请不要画蛇添足。
执行完一系列操作后,再push一次
git push origin <本地分支名>:<远程分支名>
提示:Everything up-to-date
恭喜你,你已经完全会用git了。