如何使用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. C++ 读取文本文件内容到结构体数组中并排序

    成绩排行:从Score.txt文件读取学生信息,对其进行排序,按回答题数从大到小排,若相等,按分数从小到大排 #include<iostream> #include<fstream& ...

  2. MultiImageSelector 仿微信选择多张图片回调

    项目可以去github下载 : https://github.com/lovetuzitong/MultiImageSelector 第0步 把模块 multi-image-selector 作为你的 ...

  3. python之virtualenv

    一 virtualenv简介 virtualenv------用来建立一个虚拟的python环境,一个专属于项目的python环境.用virtualenv 来保持一个干净的环境非常有用 在开发Pyth ...

  4. MYSLQ数据库 day 1

    啥是SQL? 据库的组成部分,其中数据库管理系统可以接收一些命令,对数据文件进行添加.删除.修改.查询等操作.那么这些命令就是 SQL . SQL:(Structured Query Language ...

  5. 修改JEECG项目浏览器标题

    方法1: 在线修改,在平台自带的功能“系统管理”——“国际化语言” 中搜索 jeect.platform,修改显示文字重启生效. 方法2: 修改数据表t_s_muti_lang中id为"40 ...

  6. JAVA课堂练习-动手动脑--数组

    1.阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 源代码: public class PassArray { public stat ...

  7. 17.Mysql分区

    17.Mysql分区分区是指根据一定的规则把一个表分解成多个部分,逻辑上仍是一张表,实际上由多个物理分区对象组成.分区对于应用是完全透明的,不影响业务逻辑和SQL编写.分区的优点: 可以存储更多的数据 ...

  8. UVA 11235 (RMQ) 频繁出现的数值

    题目大意是给出一个非降序排列的数组,然后n个询问,每次询问一个区间内出现次数最多的数的次数. 首先要弄清楚题目的是一个非降序的数组,那么说明相等的数都会在一起,类似于11223334569这样的,那么 ...

  9. Java中方法的重写

    ★★前提:方法的重写建立在继承关系上★★ 在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量. 所谓方法的重写是指子类中的方法与父类中继承 ...

  10. KeyPress键盘按键ASCII值对应表

    vbKeyLButton 1 鼠标左键  vbKeyRButton 2 鼠标右键  vbKeyCancel 3 CANCEL 键  vbKeyMButton 4 鼠标中键  vbKeyBack 8 B ...