23decxf 发表于 2018-1-13 07:35:31

一直在路上

  工作以来,源代码管理工具使用过SVN,TFS,Git,最后独爱Git
  本篇博客总结下自己工作中使用到的Git命令,主要目录如下:


[*]获取远程代码
[*]查看/修改配置信息
[*]查看/提交修改的代码
[*]查看每次提交明细
[*]版本回退
[*]分支管理
[*]辅助命令
[*]git重命名分支
[*]拉取远程分支到本地
[*]指定本地分支和远程分支关联问题
  1.获取远程代码
  一般每个使用Git作为源代码管理工具的公司,都会有自己的Git服务器,当我们获得项目的权限时,第一步肯定会把该项目的代码下载到本地,
  命令如下:
  

git clone https://github.com/zwwhnly/WeiXinMPSDK.git  

  当出现如下窗口时,代表代码已下载完成
https://images2015.cnblogs.com/blog/424537/201707/424537-20170704101513331-160911855.png
  此时,你会发现本地增加了一个WeiXinMPSDK的文件夹,继续执行如下命令切换到代码目录
  

cd WeiXinMPSDK/  

  此时会出现如下所示界面,代表切换到了代码的master分支:
https://images2015.cnblogs.com/blog/424537/201707/424537-20170704102015909-620822006.png
  如果服务器代码有了更新,需要获取最新代码,执行如下命令:
  

git pull  

  此时会出现如下所示界面,出现Already up-to-date代表代码已经是最新的版本
https://images2015.cnblogs.com/blog/424537/201707/424537-20170704102357972-465018049.png
  2.查看/修改配置信息
  查看所有配置信息命令如下:
  

git config --list  

  查看某个配置信息命令如下:
  

git config user.name  

  修改配置信息命令如下,以修改用户名和邮箱为例:
  

gitconfig --global user.name“xxx”  
gitconfig --global user.email xxx@foxmail.com
  

  3.查看/提交修改的代码
  首先需要执行如下命令,知道本地代码的状态
  

git status  

  如果没有修改过任何代码,则会出现如下图所示的情况
https://images2015.cnblogs.com/blog/424537/201707/424537-20170704131929237-160593658.png
  如果有过修改,则会出现如下图所示的情况
https://images2015.cnblogs.com/blog/424537/201707/424537-20170704132125784-347308567.png
  此时,先执行git add 命令,将文件跟踪/暂存起来
  

git add .  

https://images2015.cnblogs.com/blog/424537/201707/424537-20170704132431722-1621802171.png
  此时,再次修改该文件,比如给方法添加了注释,再次运行git status命令,会看到该文件出现了两次,一次是未暂存,一次算已暂存,
  实际上git 只暂存了运行git add命令时的版本,如果现在提交代码,那么提交的是添加注释前的版本
  所以,运行了git add命令之后又修改了的文件,需要重新运行git add 命令把最新版本的代码重新暂存起来
https://images2015.cnblogs.com/blog/424537/201707/424537-20170704133235065-1135118764.png
  此时,修改的代码还未提交,必须执行git commit命令才算提交,双引号中间的内容可以根据每次修改的代码自定义
  

git commit -m "git commit test"  

  为了更加快捷,git允许add命令和commit命令一起执行来提交代码,如下所示:
  

git commit-a -m"git commit test"   

  执行完commit命令后的代码,在远程服务器是获取不到的,如果想提交至远程服务器,必须执行git push命令
  

git push origin master  

  说明:有些情况下,提交代码至远程服务器需要强制push
  

git push --force origin master  

  4.查看每次提交明细
  提交代码之后,如果想知道自己修改的明细,可以执行gitk命令查看提交历史,并看出自己修改了哪一部分代码
  

gitk  

https://images2015.cnblogs.com/blog/424537/201707/424537-20170704135612706-1636002542.png
  查看修改的代码时,会发现中文乱码问题,如下所示:
https://images2015.cnblogs.com/blog/424537/201707/424537-20170704135905894-231522789.png
  执行如下git命令,解决中文乱码问题
  

git config --global core.quotepath false  
git config --global gui.encoding utf-8
  
git config --global i18n.commitencoding utf-8
  
git config --global i18n.logoutputencoding gbk
  
export LESSCHARSET=utf-8
  

  此时,再执行gitk命令查看时,会发现中文可以正常显示
https://images2015.cnblogs.com/blog/424537/201707/424537-20170704140212284-296074612.png
  5.版本回退
  有时候我们提交代码后,会发现提交错了,需要版本回退
  首先,我们执行git log命令查看提交历史,每次提交都有个对应的commitid
  

git log  

https://images2015.cnblogs.com/blog/424537/201707/424537-20170704141424269-447402919.png
  如果想单行显示,执行如下命令:
  

git log --pretty=oneline  

https://images2015.cnblogs.com/blog/424537/201707/424537-20170704141508081-427087540.png
  不管是哪种展现方式,黄色字体的部分代表每次的commitid,确定好自己要回退到的版本,将commitid复制出来,执行如下回退命令:
  

git reset --hard 4751a9ae0b81e98e262064b308cd9372bc58b04f  

  6.分支管理
  查看本地分支:
  

git branch  

  查看远程分支:
  

git branch -r  

  查看所有分支:
  

git branch -a  

  创建分支,如创建dev分支
  

git branch dev  

  切换分支,如切换到刚刚创建的dev分支
  

git checkout dev  

  删除分支,如删除刚刚创建的dev分支
  

git branch -d dev  

  注意:不能删除当前所在的分支,如你在dev分支时是不能删除dev分支的
  创建分支并切换分支,如创建dev分支并切换到dev分支
  

git checkout -b dev  

  合并某分支代码到当前分支,如正在dev分支,合并master分支的代码到dev分支:
  

git merge master  

  7.辅助命令
  清空git bash历史命令
  

clear  

  打开code所在的资源管理器
  

start .  

  8.git重命名分支
  有时候,我们创建分支时会把分支名字写错了,那么我们怎么修改分支名称呢?
  修改分支名称分以下两种场景:
  场景1:只修改本地分支名称,远程还没有这个分支
  执行如下命令即可把本地分支dev修改为develop
  

git branch -m dev develop  

  场景2:远程已有这个分支
  在git中,重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支
  命令如下:
  

git push --delete origin dev  

  
git branch -m dev develop
  

  
git push origin develop
  

  9.拉取远程分支到本地
  首先执行命令拉取远程分支代码到本地:
  

git fetch origin feature-offline1.1:feature-offline1.1  

  其中,feature-offline1.1为分支名称,拉取完成后执行git checkout命令切换到新创建的feature-offline1.1分支,
  

git checkout feature-offline1.1  

  然后执行命令,指定下本地分支与远程分支的关系
  

git branch --set-upstream-to=origin/feature-offline1.1 feature-offline1.1  

  10.指定本地分支和远程分支关联问题
  新建一个本地分支后,必须要做远程分支关联,不然git pull,git push不能正确使用,会分别提示如下信息:
https://images2017.cnblogs.com/blog/424537/201708/424537-20170801181726021-978053474.png
https://images2017.cnblogs.com/blog/424537/201708/424537-20170801181744568-2045950222.png
  解决方法:
  

git branch --set-upstream feature-possprint2 origin/feature-possprint2  

  其中,feature-possprint2为分支名称
  执行完命令后,再次执行git pull,git push就会正常,如下所示:
https://images2017.cnblogs.com/blog/424537/201708/424537-20170801182118068-937040361.png
  参考链接:http://blog.csdn.net/hshl1214/article/details/51074206
页: [1]
查看完整版本: 一直在路上