Git的基本使用

        Git是一个分布式的版本控制系统,它主要工作不同的分支,相比于SVN的单分支来说更加方便于开发者共同协作,Git可以把本地作为一个本地仓库,也可以push到一个远程仓库上。
        Git在实际的多人分工合作或者同系统不同的客户项目来说是非常方便的,比如说你一个项目系统在不同的客户使用下必须使用不同的项目代码,这时候你不必想SVN一样新建多个仓库,在Git里面你可以新建一个master分支,存放主分支的代码,然后在主分支下建立一个Branch(分支),比如说test-tengxun,又有另一个项目的话你可以建立test-taobao,等等,这样你每一个分支相当于管理一个项目,而且在分支下面还可以新建分支,用于不同的开发人员或者再分开不同区域等。
        下面介绍Git的详细使用方法。
1。安装Git,可直接百度Git进行下载(之后会把Git的安装包以及TortoiseGit放置百度云)

git config --global user.name "" //配置用户名,提交代码时展示的名字
git config --global user.email "" //配置邮箱,当你需要提交代码时,会认证你的邮箱并且要求输入密码,最好不要保存密码,我在公司使用的是公司购买的Stash的Git仓库管理的,保存密码以后发现在同一电脑上再使用Github时,只能初始化项目,但是提交不了代码,感觉是这个原因,也没去弄明白,清楚地可以告诉我一声,谢谢!!!
git config --global core.editor "" //设置默认的文本编辑器

2。git初始化及提交代码

git init //将一个文件夹初始为git 本地仓库
git add . //添加当前文件到缓冲区,它并没有真正的提交到git仓库,只是把它保留在了一个独立的控件内.
git commit -m "int"  //真正意义上的提交,-m提交全部,双引号内的为提交代码时的备注,这个备注可以方便上级或者以后查看完成了什么工作,相当于开发的日志,个人感觉比较方便,在这里完成以后就为当前的代码形成了一个版本号,以后可对版本号进行操作,比如说回退和进行比较等操作,还有这里commit提交的时候是在自己的分支上进行提交的,如果需要把代码合并到别的分支时,必须进行pull request(稍后解释)。
pull request //这个貌似只有在可视化界面才见得到,这就相当于发送一个合并代码的请求,它会匹配与主分支上的不同的代码,然后提示是否merge(合并代码),也可以看见冲突,这些操作一般是大佬做的,统一进行点的管理,分析代码的质量等等操作
git log //查看git仓库版本的日志

4。git分支:一个分支相当于一个独立的项目,是一个树形结构,是git比较核心的一个概念。

git branch newBranch //在当前分支下创建一个分支,newBranch为新分支名字,可视化界面可选择父节点是谁
git checkout newBranch //切换到newBranch分支
git checkout -b newBranch //创建分支并且切换到分支
git merge newBranch //当前分支代码与newBranch分支合并

5。本地仓库与远程仓库
        本地仓库只是相当于一个本地的存储仓库,远程则是存储在网络上的分支。实际项目上是先从远程仓库clone远程仓库上代码下来,然后在移动到项目所在的分支,如果是合作项目的话,应该需要不同的开发人员新建不同的分支,然后经理进行merge操作。从远程仓库拉下来的标准流程一般为:clone–>切换到对应的代码分支(不是自己的分支的话,执行下一步)–>创建属于自己的分支–>修改代码,提交到自己分支–>pull request 到项目分支(一般不为主分支,一般为自己分支的上一分支)。
        下面是比较标准的项目管理的方法。

git clone "git仓库地址" //clone远程仓库到自己的分支
git checkout 'project' //切换到项目分支
git checkout -b 'project-yzy'//创建并且切换到自己分支
git add .
git commit -m "注册登录功能实现"
git pull origin master //拉取远程分支的最新代码到本地

        还要一种就是远程仓库上还没有初始化仓库,只是有一个相当于文件夹的目录,这时候作为第一次进行代码提交的人员,是不能直接使用上诉的方法进行代码提交的,这时候应该进行下面的操作进行远程分支的初始化(你必须要有自己的本地仓库,并且记得把代码提交至本地仓库):

git remote add origin url //url为远程git仓库的路径,这行代码会在远程分支上建立一个master的分支,然后与本地仓库进行关联
git push origin master //提交代码至远程分支上

6。分支的其他操作(删除、重命名、查看):删除分支也就直接进行删除分支操作,但是重命名远程分支是不能直接重命名的,你必须先把远程的分支删除,然后本地进行重命名的操作,再提交到远程仓库上。

git branch -d branchname //删除本地分支
git push --delete origin branchname //删除远程分支分支
git branch -m branchname newbranchname //重命名本地分支
git branch //查看所在分支

7。回滚操作:回滚顾名思义也就是回退到某一个版本。

git reset --hard head~3 //回滚到三个版本以前
git reset --hard commit-id //会退到指定的版本id
git reflog //查看全部的日志,全部版本的日志可在这里找到回退以前的版本,再重新回到那个commit-id即可取消回滚
git log //应该只是查看当前版本的提交日志

2018/7/19 更新

8.将当前修改的暂存
        在开发的过程中,是不是会经常遇到在开发到一半,当前的需求功能还没完成,那边又催着改bug紧急上线的情况?这个时候,应该怎么办呢?放弃当前工作区,重新拉下新的分支吗? 这里git为了方便开发者,提供了一个简单的方法,首先是使用命令保存当前的工作数据到暂存(并非git的暂存区),然后你创建分支,切换分支,修改bug发布,再切换回来,还原原先的代码即可,具体代码如下

git stash  //保存到暂存
git stash apply  //或git stash pop 恢复到之前暂存

9.rebase命令
        rebase命令与merge命令类似,也是对分支的代码进行合并操作,但是merge在合并后仍然可以看见分支代码的时间线,rebase命令则不会看见那个时间线。

git rebase branch2  //最后需要合并分支的名字

10.为提交增加tag
        Tag相当于一个版本的记录点,也就是一个版本中心记录点,就开发而言,在Tag的使用上,我们可以在版本的更新时增加一个Tag的标识用于间隔版本之间的代码修改,利于之后的代码维护。具体使用方法如下。

git tag tag1 //默认会在最后的版本后增加tag标识
git tag id  //id就是某一个提交版本的唯一的标识,可以通过git log 或者可视化工具查看
git tag -a v1 -m "version1" id  //-a后面是Tag的名字,-m后面是Tag的具体描述
git tag     //查看历史的tag
git tag -d tag1 //删除tag

//远程仓库操作
git push origin tag1 //推送tag到远程仓库
git push origin --tags //推送所有tag到远程仓库
//远程删除tag
git tag -d tag1     //删除本地tag 
git push origin :refs/tags/tag1 //再推送到远程仓库删除tag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值