如何使用git管理代码
如何使用Git管理代码
Git 是开发人员用来向代码库(msstash)中提交代码或者下载远端代码库中代码的工具。
如何使用git向代码库中提交我们修改后的代码呢?
1.如果是第一次使用git,那么需要在本地电脑上初始化一个代码仓库
cd定位到目录,然后执行 git init, 初始化代码仓库,创建了一个主分支master
如果已经初始化过代码库,那么需要将远程的代码库中的代码copy下来。
git clone "https://xxxx/XXXX"
git status 查看当前的状态,非常有用
创建分支等一系列操作一定要进入项目中(cd d:/文件夹名字/项目名),不能在外面的文件夹中操作,否则就只能出错啦!~~~~(>_<)~~~~
2. 创建新分支, git branch
feature/QS-7589
3. 转到新分支, git checkout
feature/QS-7589
创建分支并切换到新分支:git checkout –b feature/QS-7859
4.在自己的电脑本地上对代码进行添加、修改、保存。
5. 使用git add --all, 让文件被git跟踪, (每次修改后提交之前都要跟踪文件)
如果只想提交某个文件,那么在使用这个命令时,使用git add 文件名。
6. 提交代码到本地,git commit -m
"some comments"
合并步骤5,6:git commit -a -m "some comments"
注:修改后的代码commit以后,如果要给别人检查一下,就直接在修改的分支下,执行如下命令行:
git push origin feature/ID ,是将分支代码push上去,以便其他人查看,如果不需要别人帮忙查看,不使用这个命令.
每次commit代码都会产生一条记录在stash中,如果同一个任务commit太多次,就会显得很繁琐,不利于其他成员去看,所以应该将所有的commit合并成一条.
$ git merge –-squash 分支名 ------将分支名上的多个commit合并成一个,放在当前分支上。
$ git commit -m “meaasge” -----提交
或者将重复的,不需要的commit删掉。
$ git log ------查看commit记录,并记录下最新代码分支的commit号,使用q退出。
$ git reset --soft commit码
$ git commit –m “ message”
如果对同一个问题,在同一个分支上commit了多次,而在某次只需要push某一次的commit,只需要切换到要合并到的主分支上,使用命令
$ git cherry-pick commitId (!重要),这个commitId号,可以在msstash中查看到。
7. 提交代码到远端过程
a.转到公共分支 git checkout [公共分支]
b.将公共分支上的代码取下来 git pull --ff (每次在push代码到库之前都必须pull一下,确保本地的代码更新到最新状态)
c.转到新分支 git checkout
feature/ID
d.以公共分支为基准
git rebase [公共分支]
e.转到公共分支
git checkout [公共分支]
f.将新的分支合并到公共分支上
git merge --no-ff feature/ID
以上的操作都是在本地的分支进行的操作,以下是最后一步,才是将本地的公共分支合并到远端的公共分支上。
g.将合并后的公共分支上的代码推送到msstash代码库中 git push origin [公共分支]
git push origin feature/ID
,是将分支代码push上去,以便其他人查看,如果不需要别人帮忙查看,不使用这个命令
第一次push或者同样的分支push过,但是已经删除了,需要使用git push origin [公共分支]
**********************************************************************************************************
有时候bug比较小,在得到manager的同意后,可以直接在prestage上修改,修改完以后直接将在本地prestage上做的修改push到远端的prestage上。在本地prestage下,使用命令git push origin prestage将本地的代码push到远端的prestage上。
修改完prestage以后,还可以将代码push到远端的develop分支上,首先切换到本地的develop分支上,然后使用git cherry-pick commitId,将prestage分支上的修改放到本地develop上。然后使用git push origin develop,这样就达到了将某个分支上的某次commit提交到远端的develop上的目的。
git branch 只是查看本地代码的分支
git branch –a 查看所有代码库中的分支
如果在某一个分支上做了修改,但是不想提交代码就想切换到其他分支,可以使用命令:
git stash , 然后再切换分支。
如果你想切换到刚刚修改过的分支后重新获得刚刚修改过的内容,则切换到这个分支以后,使用命令 git stash apply
如何在本地合并远端的分支,(假设要合并远端的分支origin/feature/add)
- 将远端代码clone下来
- 进入项目以后,使用命令:git fetch origin 远端分支名。获取远程更新
- 把更新的内容合并到本地分支:git merge origin/master
(在本地创建一个新的分支与远端的分支进行合并,使用命令:git checkout –b 本地分支名 origin/远端分支名)
Git fetch origin develop 把远端代码库中的develop分支上的代码拿到自己的代码仓库中,更新对应的develop分支
将develop分支合并到feature/QS-8650上:首先切换到feature/QS-8650分支上,然后
git merge --no-ff develop,如果有冲突就解决冲突,没有冲突就可以提交feature/QS-8650
如果不小心在本地使用了git push origin
develop命令,将自己代码库中的develop分支做了修改,那么再使用git pull 时,自己fork下来的代码库不会同步更新公共仓库中的更改。通常重新fork公共代码仓库,重新修改。
*****************************************************************************************************************
删除分支
删除一个分支dev2:
git branch –d dev2
注意不能删除当前所在分支,需要转到别的分支上。
如果要删除的分支已经成功合并到当前分支,删除分支的操作会直接成功。
如果要删除的分支没有合并到当前所在分支,则会出现提示,如果确定无须合并而要直接删除,则执行命令:
git branch –D dev2
进行强删。
分支重命名
重命名分支:
git branch –m oldname newname
-m不会覆盖已有分支名称,即如果名为newname的分支已经存在,则会提示已经存在了。
如果改成-M就可以覆盖已有分支名称了,即会强制覆盖名为newname的分支,这种操作要谨慎。
为了避免误操作对远端代码库的影响,通常我们可以将远端的代码库fork一份,建立自己的代码库,然后从自己的代码库中clone一份代码到本地机器上。这样每次commit和push都是在自己的代码库中操作的,对远端的代码库没有影响,如果最后确认无误后,再将自己的代码库与远端的代码库合并。
***************************************************************************************************************
为了节省空间或者隐藏文件,通常把好几个文件打包压缩在一起给客户使用,但是当我们的功能出现了问题,需要改bug时,在浏览器中我们看到的也是压缩文件,很难调试这时就需要在本地将合成压缩文件的好几个文件打包在一起,去替换压缩的文件,用以下命令可以将多个文件打包合成一个文件替换。多个文件在gruntconfig文件夹里面,打包后的文件在release文件夹中
grunt qbuild --apicom=文件名 --apiunu=true
grunt qbuild --apicom=finra_common --apiunu=true
grunt qbuild --apicom=calendar --apiunu=true
如何使用git管理代码的更多相关文章
- intelliJ IDEA之使用svn或git管理代码
intelliJ IDEA之使用svn管理代码 1.VCS—>import into Version Control—>Share Project(Subversion) 2.点击+ ...
- Git管理代码
使用Git管理代码 1. 分支管理模式 首先,master分支应该是非常稳定的,开发都在dev分支上,每个人都有自己的分支,时不时地往dev分支上合并就可以了.完成测试后,再把dev分支合并到mast ...
- 用开源中国(oschina)Git管理代码(整合IntelliJ 13.1.5)
简介 开源中国提供了Git服务(地址:http://git.oschina.net/),在速度上比国外的github要快很多.使用了一段时间,感觉很不错.oschina git提供了演示平台,可以运行 ...
- VS Code使用Git管理代码
Visual Studio Code(简称VS Code)是一个轻量级且强大的代码编辑器,后台是微软,支持Windows.Mac和Linux操作系统,拥有丰富的插件生态系统,可通过安装插件来支持C++ ...
- windows下使用git管理代码,其中出现的问题的解决办法
和朋友共同开发一个小项目,所以就涉及到了代码管理这块,刚开始想到的是使用svn,但是外网访问svn的时候需要使用花生壳来弄一个动态的域名,中间出了很多错误,感觉有点麻烦,所以就想到看看还有别的管理代码 ...
- 使用代码管理工具(git)管理代码的常用指令合集
create a new repository on the command line echo "# test" >> README.md git init git ...
- 使用git管理代码的心得
一.简易使用流程 首先下载安装git,点击Git Bash进入编辑界面,之后如下图进入目录并通过命令 git init 把这个目录变成git可以管理的仓库 接下来使用git add .命令将所有文件添 ...
- Coding.net进阶,使用Git管理代码
原文来自:http://conw.net/archives/18/ (我自己的博客,点击链接查看文章最新版本) Git是目前最流行的版本控制系统,这里以GitHub为例,介绍git的基本使用. Git ...
- 【前端开发环境】前端使用GIT管理代码仓库需要掌握的几个必备技巧和知识点总结
1. Git的三种状态 已提交 committed 已暂存 staged 已修改 modified 2. Git的三个区域 Git仓库 是 Git 用来保存项目的元数据和对象数据库的地方. 这是 Gi ...
随机推荐
- <context:annotation-config/>,<mvc:annotation-driven/>和<context:component-scan>之间的关系
首先看一下三个注解各自定义: ① <context:annotation-config/> 1.如果你想使用@Autowired注解,那么就必须事先在 spring 容器中声明 Autow ...
- maven中导入包版本冲突的解决
导入struts包,在struts核心包的ognl包下存在javassist包: 然后再导入hibernate包,在hibernate核心下也存在javassist包: 这样便会存在冲突,ecplis ...
- vue 初识组件
Vue.component("greeting",{ template: `<p>{{ name }}大家好 <button v-on:click="c ...
- 4K - 找新朋友
新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道 ...
- json与字符串转换
一.json转为字符串 JSON.stringify(...) 二.字符串转为json JSON.parse(...)
- C#委托深入学习
一基础学习: .Net delegate类型:委托跟回调函数是很有渊源的.回调其实跟通知机制有关,考虑这样一个基本的事件序列: a对象调用了b对象的某个方法,希望b对象在其方法完成之时调用a对象的某个 ...
- (转)HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面
详细错误:HTTP 错误 404.2 - Not Found. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面. 出现环境:win7 + IIS7.0 解决办法 ...
- spring boot (一): Hello World
什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- 通过 ulimit 改善系统性能
系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段.ulimit 是一种 l ...
- MySQL数据库相关操作
查看数据库 mysql> SHOW DATABASES; 选择数据库 mysql> USE 数据库名称: 查看当前数据库 mysql> select database(); -- 第 ...