首先官网下载git
安装注意事项
这项必选
选第一个,就不用从cmd中进入git了,我们专用bash
windows下的代码迁移至unix下,自动修改格式勘误
把红框里的勾去掉。
新建开发项目提交
初始化之后可看到.git隐藏文件,然后配置代码抬头
注:
git config --global user.emai "xxx"
全局,配置在C盘下
查看状态与文件夹/代码提交
绿色部分的txt文件表示想要提交的在暂存区的文件,再输入
git commit
接下来是在vim状态里写说明,iao三种方法来进行编辑,编辑结束之后按Esc进入命令模式,再按:wq退出(得到的是md文件),即可将暂存区文件全部提交上去。再git status的时候即可发现暂存区什么也没有。
输入vim src/lili.java
可直接修改提交的代码
输入git commit -m "update"
可直接编辑说明,不用再进入编辑说明界面。
输入git log
可以看见日志,git log --pretty=oneline
调整格式
如果发布的新版本不满意,退回原版本需要输入git reset --hard HEAD^
hard表示硬回退,所有组件都回到某个时点上去。HEAD表示指针(默认指向最新版本)^表示前一个版本,回退则看不见被退掉的版本了
退掉多版本,可以加多个^,也可以用~n 表示比如git reset --hard HEAD~2
那么如果对于退回操作后悔了,需要回到最新版本,则需要git reflog
命令看到所有操作 看到它对应的前七位编码"abcdefg",键入git reset --hard abcdefg
把未提交的代码还原成初始状态git checkout -- src/lili.java
传错文件后把库里的文件删除,先git status
检查到一个deleted红字行,再git add src/file
认识几个新单词: repository本地库包含隐藏目录.git,私有的库只有开发人员能看,公共的库都能看,以及.index索引文件是暂存区
继续,我们来看看分支操作
git branch -v
查看现有分支,绿色为当前所在分支,master为主分支,git branch name
为新建一个叫name的分支,分支的切换用git checkout name
即将master分支切换到了name分支上去。如果再分支name上提交代码,当切换到主分支master上时是看不见新的提交代码的,当需要把分支开发部分与主分支合并的时候,使用git merge name
即可将分支代码全部迁移到主分支上去。
如果主分支和name分支修改的是同一个地方,合并时一定会冲突,显示conflict,并且右边会显示merging,先解决merging,决定留谁不留谁(修改),然后add、commit、merge,也就是用最新修改的代码代替冲突的两个代码。
拿到仓库全部的代码git clone <远端地址>
上传git push
主分支仅需要更新部分代码git pull
项目的github主页里settings的collaborators加入项目许可分支人员,作为分支需要在邮箱里确认参与项目才能提交代码。
增加远程地址git remote add <远端代号> <远端地址>
如git remote add origin https://github.com/sense1996/lili.git
推送到远程库git push <远端代号> <本地分支名称>
如git push origin master
主分支拉到本地git pull <远端代号> <本地分支名称>
如git pull origin master
协作冲突
如果两个分支提交了同样的东西,最新版本无法push上去,则变成先pull下来再push(中间需要merging)
如果是不在项目组里的人想要参与,而主分支人员不愿意随便加一个人到项目组里,则第三方需要fork项目,然后主分支人员则可以选择merge
有更好用的软件 不用每次在bash上输入命令,以后再说。
Git工作流
主干分支master 开发分支develop 修理分支hotfix 发布版本分支release 功能分支feature