如何使用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)

  1. 将远端代码clone下来
  2. 进入项目以后,使用命令:git fetch origin 远端分支名。获取远程更新
  3. 把更新的内容合并到本地分支: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管理代码的更多相关文章

  1. intelliJ IDEA之使用svn或git管理代码

    intelliJ IDEA之使用svn管理代码 1.VCS—>import into Version Control—>Share Project(Subversion) 2.点击+    ...

  2. Git管理代码

    使用Git管理代码 1. 分支管理模式 首先,master分支应该是非常稳定的,开发都在dev分支上,每个人都有自己的分支,时不时地往dev分支上合并就可以了.完成测试后,再把dev分支合并到mast ...

  3. 用开源中国(oschina)Git管理代码(整合IntelliJ 13.1.5)

    简介 开源中国提供了Git服务(地址:http://git.oschina.net/),在速度上比国外的github要快很多.使用了一段时间,感觉很不错.oschina git提供了演示平台,可以运行 ...

  4. VS Code使用Git管理代码

    Visual Studio Code(简称VS Code)是一个轻量级且强大的代码编辑器,后台是微软,支持Windows.Mac和Linux操作系统,拥有丰富的插件生态系统,可通过安装插件来支持C++ ...

  5. windows下使用git管理代码,其中出现的问题的解决办法

    和朋友共同开发一个小项目,所以就涉及到了代码管理这块,刚开始想到的是使用svn,但是外网访问svn的时候需要使用花生壳来弄一个动态的域名,中间出了很多错误,感觉有点麻烦,所以就想到看看还有别的管理代码 ...

  6. 使用代码管理工具(git)管理代码的常用指令合集

    create a new repository on the command line echo "# test" >> README.md git init git ...

  7. 使用git管理代码的心得

    一.简易使用流程 首先下载安装git,点击Git Bash进入编辑界面,之后如下图进入目录并通过命令 git init 把这个目录变成git可以管理的仓库 接下来使用git add .命令将所有文件添 ...

  8. Coding.net进阶,使用Git管理代码

    原文来自:http://conw.net/archives/18/ (我自己的博客,点击链接查看文章最新版本) Git是目前最流行的版本控制系统,这里以GitHub为例,介绍git的基本使用. Git ...

  9. 【前端开发环境】前端使用GIT管理代码仓库需要掌握的几个必备技巧和知识点总结

    1. Git的三种状态 已提交 committed 已暂存 staged 已修改 modified 2. Git的三个区域 Git仓库 是 Git 用来保存项目的元数据和对象数据库的地方. 这是 Gi ...

随机推荐

  1. git log的用法

    git log 查看 提交历史默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面. git log --graph --pretty=format:'%Cred%h ...

  2. utils.js和vue-loader.conf.js

    var utils = require('./utils')var config = require('../config')var isProduction = process.env.NODE_E ...

  3. Oracle 表空间和数据文件之间的关系

    首先,你需要明白的一点是:数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件.日志文件和控制文件.数据库的文件为数据库信息提供真正的物理存储. 每 ...

  4. Git两分钟指南-学习入门参考

    Git两分钟指南 http://blog.jobbole.com/78999/ GIT和SVN之间的五个基本区别 http://www.oschina.net/news/12542/git-and-s ...

  5. Oracle_高级功能(9) 性能优化

    1.oracle优化器 优化目标分为4种: choose (选择性) rule (基于规则) first rows(第一行) all rows(所有行) Description:描述sql的执行计划 ...

  6. C# iframe session 丢失

    在页面A中使用iframe引用另一站点页面B,但页面B上面的session总是丢失,百度了一下,不用改程序,直接在iis里面操作,解决方法如下 1.打开IIS管理器 inetmgr 2.选择被嵌入if ...

  7. Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted

    在java中写switch代码时,参数用的是string,jdk用的是1.8,但是还是报错,说不支持1.7版本以下的,然后查找了项目中的一些文件,打开一个文件如下,发现是1.6的版本,好奇怪啊,按照e ...

  8. eclipse中查找某一个字符串

    想要完全匹配查找一个字符串,如iCard,而iCardSys或iiCard这种都不行,可以用正则表达式来查找,如下: 参考链接:http://blog.csdn.net/u014656992/arti ...

  9. Rsync同步设置的一例

    以下文档于2014-12-10更新   先在服务端操作 #wget http://pkgs.repoforge.org/rsync/rsync-3.0.9-2.el6.rfx.x86_64.rpm # ...

  10. [都是原创]Php simplexml 添加节点

    Php simplexml 添加节点 原始代码如下 //================<? //创建xml对象$xml = new SimpleXMLElement('<Messages ...