Git命令行基本操作
2017-03-14 11:21
423 查看
直接跳转原地址看吧:
返回主页 Tocy–Git命令行基本操作
另外有个地方的博客看到感觉不多,Git板块:
玩转 Git - 毕小烦的学习笔记
或者看看下方教程:
廖雪峰–Git教程
pull与fetch命令的区别:
Git 少用 Pull 多用 Fetch 和 Merge
git fetch和git pull之间的区别
Git的命令列表,各种命令,包括版本回滚等:
Git常用命令 - Vman - 博客园
Git进行代码回滚的操作:
git如何正确回滚代码 - sexy_girl - 博客园
配置用户名及邮箱
在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。
其他配置
如果在windows下建议还是配置下默认文本编辑器core.editor和差异分析工具merge.tool。
返回主页 Tocy–Git命令行基本操作
另外有个地方的博客看到感觉不多,Git板块:
玩转 Git - 毕小烦的学习笔记
或者看看下方教程:
廖雪峰–Git教程
pull与fetch命令的区别:
Git 少用 Pull 多用 Fetch 和 Merge
git fetch和git pull之间的区别
Git的命令列表,各种命令,包括版本回滚等:
Git常用命令 - Vman - 博客园
Git进行代码回滚的操作:
git如何正确回滚代码 - sexy_girl - 博客园
Git命令行基本操作
0. 安装Git
网上有很多Git安装教程,如果需要图形界面,windows下建议使用TortoiseGit,linux建议使用Git GUI或者GITK。1. Git基本配置
git config可以配置git的参数,可以使用git config –list查看已经配置的git参数。其中有三个级别的保存位置,–system、–global、–local,分别表示所有用户(本系统)、当前用户(全局)、本地配置(当前目录),默认使用–local。配置用户名及邮箱
在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。
git config --global user.name "Tocy" git config --global user.email zyvj@qq.com
其他配置
如果在windows下建议还是配置下默认文本编辑器core.editor和差异分析工具merge.tool。
2. 创建Git仓库
可以直接调用git init初始化当前目录,即创建Git仓库。3. 获得Git仓库
如果需要克隆远程仓库,可以使用git clone,比如:git clone https://git.oschina.net/Tocy/SampleCode.git[/code]4. 提交更新
在windows下的Git GUI中,提交很简单,右键-TortoiseGit-Commit。那么命令行下需要怎么处理?
Git中每个文件都有三种状态:committed、staged、modified。它们之间关系如下:
commit <– stage <– modify
commit –> — –modify
我们获取的Git仓库中的所有文件都是committed状态,如果你在本地修改了文件a,a的状态就变成modified的;如果使用git add a,a的状态变成staged;如果使用git commit,a的状态就变成commited。这种状态变化也说明复制代码是很方便的,但是提交更新请慎重。
当然还有一种文件状态,未跟踪状态(unversioned/untracked),通过使用git add可以把未跟踪状态变更为staged;通过git rm可以将staged或者committed状态变为未跟踪状态。git status
通常提交前先检查下修改了什么内容,当前Git目录下各文件的状态。$ git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) Readme.md nothing added to commit but untracked files present (use "git add" to track)git add
git add可以添加文件或者目录,也可以使用通配符。比如:git add Readme.md # add file only git add *.cpp # add all cpp files git add /home/code/ # add all files in /home/codegit diff
git diff可以查看当前目录的所有修改。
提交之前,还是单独确认下处于staged状态的文件有哪些,并保证修改正确。在实际应用中,可能还需要使用git diff导出PATCH做代码走读。
可以使用git diff –staged或git diff –cached查看staged与上次提交快照之间的区别。git commit
提交前需慎重。直接调用git commit会弹出编辑器,输入提交日志(如果是多行日志,建议使用)。
针对单行日志提交的情况,可以使用如下命令:git commit -m “add readme”。
还有一种快捷的提交方式,直接跳过stage缓存区,直接提交当前目录下的所有修改git commit -a(使用这个命令前建议确认下当前目录的修改是否正确、必须)。git rm
git rm会把文件从当前目录删除(不会保存删除的文件)。如果需要从Git仓库中删除,但保留在当前工作目录中,亦即从跟踪清单中删除,可以使用git rm –cached readme.md。5. 提交历史查看
可以使用git log查看当前工程的所有提交的日志。git log --stat # 仅显示摘要选项 git log --pretty=oneline # 定制记录格式 git log --graph # 图像化分支和版本更新6. 撤销更新
7. 远程仓库
可以使用git remote查看当前的远程库。
git remote -v
可以显示对应的克隆地址。(对于多个远程仓库很有用)添加远程仓库
git remote add [short_name] [url]
可以添加新的远程仓库。// 如在本地目录下关联远程repository : git remote add origin git@github.com:git_username/repository_name.git // 取消本地目录下关联的远程库: git remote remove origin从远程仓库抓取数据
git fetch [remote-name]
可以从远程仓库抓取数据到本地。
也可以使用git pull
从远程服务端获取分支到本地
一、查看远程分支
使用如下Git命令查看所有远程分支:git branch -r
二、拉取远程分支并创建本地分支
i. 方法一
使用如下命令:git fetch origin 远程分支名x:本地分支名x
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。// 获取最新代码 git fetch origin master // 比较本地的master分支和origin/master分支的差别 git log -p master..origin/master // 合并 git merge origin/master
其实可以用以下更清晰的方式来进行:
当前在test分支,
先从远程获取最新的版本到本地的test分支上,
然后之后再进行比较合并。git fetch origin master:tmp git diff tmp git merge tmp
ii. 方式二
使用如下命令:git checkout -b 本地分支名x origin/远程分支名x
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
iii. 方式三
使用如下命令:git pull origin master
pull命令相当于是从远程获取最新版本并merge到本地,即git fetch + git merge。使用fetch更安全,可以看看更新情况再合并。推送数据到远程仓库
git push [remote_name] [branch_name]
默认使用origin和master。查看远程仓库信息
git remote show origin远程仓库的删除和重命名
git remote rename [old_name] [new_name]git remote rm [remote_name]
删除远程分支和tag
在Git v1.7.0 之后,可以使用这种语法删除远程分支:$ git push origin --delete <branchName>
删除tag这么用:git push origin --delete tag <tagname>
否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:git push origin :<branchName>
这是删除tag的方法,推送一个空tag到远程tag:git tag -d <tagnam
git push origin :refs/tags/
两种语法作用完全相同。8. 打Tags
可使用git tag显示当前库中的标签。添加标签(含附注)
git tag -a v0.1 -m "my version 0.1"
使用如下命令查看Tag日志信息(指定对应标签的名字)git show v0.1
也可使用SHA-1的提交表示创建tag:git tag -a v0.2 [SHA-1] -m "my version 0.2"分享标签
默认的,git push不会推送标签信息到远程仓库,需要通过命令显式推送。git push origin v0.1
如果需要推送所有标签,使用git push origin --tags9. Git分支
git分支是轻量级的,速度很快,仅记录索引信息。显示所有分支
使用git branch可显示当前所有分支。
可以使用–merged和–no-merged查看已经合并、未合并的分支。创建及切换分支
可以使用下面命令直接切换并创建分支git checkout -b testing
等价于$ git branch testing # 创建testing 分支 $ git checkout testing # 切换到testing分支
注意切换分支时请保持工作目录没有未提交的修改。Git鼓励使用分支,处理完问题之后合并分支即可。分支合并
将hotfix分支合并到master(主分支)上,需要通过下面命令:$ git checkout master $ git merge hotfix
合并之后可以使用git branch -d hotfix
删除分支。
如果合并时存在冲突,需要手工修改。10.Git回滚操作
相关文章推荐
- 命令行托管git项目基本操作
- git命令行基本操作
- Git命令行基本操作
- Git_ 基本操作_第2课_Git利用命令行对 Config配置的 增删查改
- Git 分布式版本控制系统 基本命令行操作
- Git基本命令行操作
- Git 基本命令行操作
- git 命令行指令基本操作
- git 命令行基本操作
- Git基本命令行操作 (转)
- Git基本命令行操作
- Git基本操作
- Git学习笔记(3)--Git的基本操作及一些小技巧
- Java的IO操作(二) - 带缓冲区的流对象、写入基本数据类型、实现命令行中的copy命令
- Java的IO操作(二) - 带缓冲区的流对象、写入基本数据类型、实现命令行中的copy命令
- windows下GIT使用记录--01基本操作
- 送上mac终端 命令行的一些基本操作
- git config命令使用第一篇——介绍,基本操作,增删改查
- git config命令使用第一篇——介绍,基本操作,增删改查
- 命令行下的mysql的基本操作