如何使用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++ 计算直线的交点数(动态规划)

    问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1466 Problem Description 平面上有n条直线,且无三线共点,问这些直线能有多少种不同 ...

  2. MySQL安装(windows版本)

    1.下载.MySQL http://dev.mysql.com/downloads/mysql/ 下载windows的zip包,解压后,添加path路径bin, 系统环境变量->path-> ...

  3. linux操作系统重启后 解决nginx的pid消失问题

    重启了linux服务器之后,进程性的 nginx -s stop后再次启动nginx -s reload ,总是会报错误nginx: [error] open() "/alidata/ser ...

  4. xss测试用例

    alert(1)// 'alert(1)// '>alert(1)// >alert(1)// "alert(1)// ">alert(1)// alert(1) ...

  5. 微信小程序中用setData修改一个对象的属性值

    原创文章 1. Page({    data: {      items:{ //items为一个对象,is_like和like分别为其两个属性     is_like: 0,    like: 0 ...

  6. go语言net包udp socket的使用

    udp与tcp的不同在于客户端请求方式不同,udp缺少Accept函数. 一个简单的udp客户端: package main; import ( "net" "log&q ...

  7. taglib简介

    在 JSP最佳实践的 上一期,您学习了一种基于scriptlet的技术,这种技术被用来将上次修改的时间戳添加到JavaServer Page(JSP)文件中.不幸的是,比起它所提供的短期利益,scri ...

  8. 64位Win7系统下vs2010调试无法连接oracle解决办法

    具体的解决办法如下: 1.先将WebDev.WebServer20.EXE和WebDev.WebServer40.EXE文件从Program Files (x86)目录中拷贝出来放到c:\dev目录中 ...

  9. JoyOI1035 棋盘覆盖

    原题链接 对棋盘染色,坐标和为奇数的染黑,偶数为白.这时会发现对于相同颜色的格子,是无法放置骨牌的,这样我们就将所有格子分成两类,然后根据能否放置骨牌连边,最后就是求二分图最大匹配了. 这里我是用的匈 ...

  10. BZOJ 3123 [SDOI2013] 森林 - 启发式合并 主席树

    Description 给你一片森林, 支持两个操作: 查询$x$到$y$的$K$大值,  连接两棵树中的两个点 Solution 对每个节点$x$动态开权值线段树, 表示从$x$到根节点路径上权值出 ...