一直在路上
工作以来,源代码管理工具使用过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]