最近在kwai暑期实习,开始真正接触企业的gitlab来代码托管实现协同办公,自己就来简单记录一下吧。 参考廖雪峰大佬的教程哦(他的Python教程也很棒)开始~
首先Mac电脑的同学还是有福音吧,xcode里面集成了Git,APPstore获取xcode即可在idea或者android studio开启使用,windows要去下载,可以参照教程吧。
1、mkdir 创建空目录 2、cd到这个目录中,git init ,该目录及变为git管理的仓库
Git添加文件需要add,commit一共两步: 因为commit可以一次提交很多文件,所以你可以多次add不同的文件 eg: $ git add file1.txt $ git add file2.txt file3.txt $ git commit -m “add 3 files.”
添加文件到Git仓库,分两步: 1、使用命令git add <file>,注意,可反复多次使用,添加多个文件; 2、使用命令git commit -m <message>,完成。git status 查看状态(修改与否,是否add了) git diff filename 查看文件改变的部分
git log 查看提交日志(类似各个版本的历史记录) git log --pretty=oneline 是更好的查看,只返回关键信息(版本号+备注信息)
git reset --hard 1094a(版本号,不用写全写前几位直至能区分即可) 版本回退 git reflog 查看命令历史,以便确定要回到未来的哪个版本
这种情况是建立本地仓库,再去建远程仓库,建立联系以后把本地仓库推送上去
1、从GitHub(或gitlab)新建立远程仓库。 2、然后在git bash中,在本地仓库中使用下面命令与远程代码仓库进行关联
git remote add origin GitHub上的ssh或者HTTPS链接ssh快一些,但是有的公司只支持HTTPS
3、关联后,使用命令 git push -u origin master 第一次推送master分支的所有内容;
4、此后,每次本地提交后,只要有必要,就可以使用命令 git push origin master 推送最新修改;
这种情况是现有远程仓库,然后通过git clone 在本地克隆一个本地仓库
1、cd进想放的目录位置 2、执行:
git clone GitHub上的ssh或者HTTPS链接#想起的关于合并的题外话:
git merge --no-ff -m "merge with no-ff" dev --no-ff 禁用fast forward得到的是这样的分支,不会造成数据丢失,直接git merge会丢失中间的修改过程。而这样会记录上次修改前样子。 合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
git branch -m oldName newName
git branch -d dev 删除dev分支 git branch -D dev 强行删除dev分支,有时候未合并过的分支删除要通过强行删除才能删掉
协同办公是git fetch origin时可能出现问题,无法提交原因是小伙伴已经对所提交分支进行了修改并提交,此时自己的版本比较老了,做法大致如下:
1、首先,可以试图用git push origin branch-name 推送自己的修改;
2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并; 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用返回提示的命令git branch --set-upstream-to origin/。
3、如果合并有冲突,则解决冲突,并在本地提交;手动
4、没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
当从master分支创建并切换到dev分支,修改完并提交后回到master分支,再对master分支修改并提交,就会出现如下情况: 此时从master分支git merge dev是会产生冲突的,无法合并。此时用git status找到冲突文件,人工合并修改后,用git add 和 git commit再次提交,就变成如下情况,成功解决冲突实现合并。
rebase:
1、rebase操作可以把本地未push的分叉提交历史整理成直线;
2、rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。