干IT行业的应该没有不知道Git的吧,下面我们就来介绍一些在公司会经常使用的Git命令及其使用方法吧。
Git的安装这里就跳过了,我们直接来进入Git使用前的简单配置阶段。
1-使用前的配置
Git在使用前需要先配置一下使用者的信息,比如用户姓名与邮箱。(注意:如果不配置用户姓名,那么提交代码到远程仓库时,默认提交者为当前系统用户,比如:root。)还有一些其他配置,其重要程度比较低。这里,我们先配置一下用户姓名及邮箱,下面的介绍中我们会使用一些其他的配置。
配置全局
git config --global user.name "test"
git config --global user.email "test@antiy.cn"
配置局部
去除--global选项即可
查看当前配置信息
git config --list
2-Git基础
使用Git之前,我们需要简单了解一下Git中各区之间的关系:
工作区 ---- git add ---- 暂存区 ---- git commit ---- 本地仓库 ----git push ---- 远程仓库
初始化
git init
接着即可
git add .
git commit -m "init"
从现有仓库克隆
git clone git://github.com/test/test.git
若想自己定义新建的项目名称
git clone git://github.com/test/test.git mytest
检查当前文件状态
git status
# 注意:该命令只显示当前工作区与暂存区的文件修改状态
添加文件到暂存区
git add . # 添加所有
git add file.txt # 添加单个文件
忽略某些文件
在使用Git时,会遇到一些log文件,这些文件又比较大,我们不想把这些文件也上传到远程仓库上,那么就可以使用下面的操作及命令。
在.git同级目录下创建.gitignore文件
cat .gitignore
*.pyc
*.log
忽略所有以.pyc或.log结尾的文件
支持正则
查看各区文件内容的区别
1、查看工作区和暂存区文件内容的区别
git diff # 查看所有
git diff aa.txt # 查看单个文件
2、查看暂存区和本地仓库文件内容的区别
git diff --cached
git diff --cached aa.txt
提交代码到本地仓库
git add . # 工作区添加到暂存区
git commit -m "提交日志内容" # 暂存区提交到本地仓库
或者
git commit -a -m "提交日志内容" # 直接从工作区提交到本地仓库
删除文件
文件已经添加到了暂存区
rm -rf test.txt
git rm test.txt
git status
从本地仓库删除文件,并希望该文件还保存在工作区
git rm --cached test.txt
git status
移动文件
git mv README.txt README
相当于:
mv README.txt README
git rm README.txt
git add README
查看提交历史
git log
# 形象展示每个提交所在分支及其分化衍合情况
git log --pretty=format:"%h %s" --graph
%h:提交对象的简短哈希字符串
%s:提交说明
查看某个文件的修改与提交历史
git log -p test.txt
撤销操作
使用场景:当提交完代码到本地仓库后,发现有一些代码没有添加到暂存区,而又不想在写一个提交说明,那么可以使用下面的操作,此操作会使第二次的代码提交说明跟第一次的一样,从外面看就是一次提交。
git commit -m "提交代码"
git add test.txt
git commit --amend
取消已经暂存的文件
git reset HEAD test.txt
取消对文件的修改
使用场景:工作区代码修改完,发现没有必要修改,想要修改成原来的样子
git checkout -- test.txt
注意:此操作有风险,使用前请确认是否真的不再需要保留刚才的修改。
查看当前的远程库
git remote
# 显示对应的克隆地址
git remote -v
添加远程仓库
git remote add new_origin git://github.com/test/test.git
git remote -v
从远程仓库拉取数据到本地仓库
git fetch origin
推送本地仓库数据到远程仓库
git push origin master
3-Git分支
说明:分支是Git中很重要的部分,下面这些命令都是最基础和重要的,很容易理解且使用起来很简单。希望读者能理解并熟练掌握它们。
查看当前分支
git branch
创建分支
git branch jinxzhen
切换分支
git checkout jinxzhen
创建并切换分支
git checkout -b jinxzhen
合并分支到当前分支
git branch # 查看当前分支
git checkout master # 切换到master分支
git merge jinxzhen #合并jinxzhen分支到当前分支
删除分支
git branch -d jinxzhen
删除远程分支
git push origin :jinxzhen # 即在这里提取空白然后把它变成远程分支
查看哪些分支已被并入当前分支
git branch --merged
举一反三,查看尚未合并的分支
git branch --no-merged
拉取远程分支代码并合并到当前分支
git fetch origin
git merge origin/master
等价于:
git pull origin master
在远程分支基础上分化出一个新分支
git checkout -b jinxzhen origin/jinxzhen 或者 git checkout --track origin/jinxzhen
储藏
使用背景:
当你正在进行项目中的某一部分工作时,这时需要转到其他分支来进行一些操作,但是你又不想提交进行了一半的工作(注意:不提交而切换分支,会报错)。这时你可以使用储藏功能。
# 查看当前状态
git status
# 储藏
# git stash
# 切换分支
git checkout master
# 操作----
# 切回分支
git checkout jinxzhen
# 查看现有储藏
git stash list
# 应用储藏
git stash apply
如果你有好几个储藏,想要应用其他储藏可以使用:(默认使用最近的储藏)
git stash apply stash@2
4-自定义Git
下面介绍两种其他的配置:
开启着色:开启后当使用其他命令时,会有颜色上的显示和差别,增加用户体验。
git config --global color.ui true
提交时自动将行结束符CRLF转换成LF,在拉取代码时把LF转换成CRLF
说明:有一些在Linux和Windows上同时运行项目的读者应该知道,Linux和Windows的换行符是不相同的,经常需要改来改去,那么使用了下面的命令,会方便好多。
git config --global core.autocrlf true
提交时把CRLF转换成LF,拉取时不转换
git config --global core.autocrlf input
最后:
学习永无止境,希望以上的知识会对你们有所帮助,帮助你们打开Git的大门(这些都是Git基础知识,当然只算是看大门的啦),体会到Git的魅力所在。