Git 简便安装方法及常用命令总结

一.在Mac OS X上安装git

Xcode集成了git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Locations”,选择“Command Line Tools”,点“Install”就可以完成安装了。

二. git常用命令

Git 简便安装方法及常用命令总结_第1张图片
git通用操作流程
* 工作区:本地电脑存放项目文件的地方,比如learnGitProject文件夹;
* 暂存区(Index/Stage):在使用git管理项目文件的时候,其本地的项目文件会多出一个.git的文件夹,将这个.git文件夹称之为版本库。其中.git文件夹中包含了两个部分,一个是暂存区(Index或者Stage),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里;
* 本地仓库:.git文件夹里还包括git自动创建的master分支,并且将HEAD指针指向master分支。使用commit命令可以将暂存区中的文件添加到本地仓库中;
* 远程仓库:不是在本地仓库中,项目代码在远程git服务器上,比如项目放在github上,就是一个远程仓库,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中即可;
  • git配置

列出当前配置:git config --list;
列出repository配置:git config --local --list;
列出全局配置:git config --global --list;
列出系统配置:git config --system --list;

配置用户信息:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

其他配置:
配置解决冲突时使用哪种差异分析工具,比如要使用
vimdiff:git config --global merge.tool vimdiff;
配置git命令输出为彩色的:git config --global color.ui auto;
配置git使用的文本编辑器:git config --global core.editor vi;

导入第三方库提醒
error: RPC failed; curl transfer closed with outstanding read data remaining

原因:curl的postBuffer默认值太小,需要在终端重新配置这个值
解决:将curl的postBuffer值配置为500M,具体值看项目需求,配置成功不会有提示,配置失败会有提示,
终端输入命令:
git config --global http.postBuffer 524288000
  • 常用命令

* 新建仓库:
git init                将工作区中的项目文件使用git进行管理,即创建一个新的本地仓库:
git clone  mygit   将github项目clone到本地,被clone的项目将作为远程库。
克隆项目时如果想定义新的项目名,可以在clone命令后指定新的项目名mygit:


* 提交:
git add   把文件修改添加到暂存区。(注意:添加到仓库,需要执行提交操作才能把文件放到仓库。)
git add .       提交工作区所有文件到暂存区:
git add [dir]   提交工作区中某个文件夹中所有文件到暂存区

区别
git add .   会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u  仅监控已经被add的文件(即tracked file),会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
git add -A  是上面两个功能的合集(git add --all的缩写)

git commit -m "commit_info"    把文件提交到仓库。
git commit -a -m "commit_info"    跳过add到暂存区的过程,将所有已经使用git管理过的文件暂存后一并提交
git commit --amend    撤销上一次提交


* 撤销:
git rm   删除工作区文件,并且也从暂存区也删除对应文件的记录
git rm --cached    从暂存区中删除文件,但是工作区依然还有该文件
git reset HAED     把暂存区的修改撤销掉,重新放回工作区。
git reset --hard commit_id    回退到以前的版本。Git中用HEAD表示当前版本,上一版本为HEAD^,上上版本为HEAD^^,假如为往上100版本,则可表示为:HEAD~100。
git checkout -- file     丢弃工作区的修改。git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。如果想保留上一次的修改以备以后继续工作,可以使用stashing和分支来处理


* 重命名文件:
git mv [file-original] [file-renamed]    并将已改名文件提交到暂存区
  • 查看信息:

git status    查看当前工作区暂存区变动
git status -s    概要信息
git status  --show-stash  查询工作区中是否有stash存在(暂存的东西),有则提醒该工作区有几个 stash

git diff     查看修改的内容,比较工作区中当前文件和暂存区之间的差异,也就是修改之后还没有暂存的内容
git diff --cached    比较暂存区与上一版本的差异
git diff  --cached   指定文件在工作区和暂存区上差异比较

git log     查看提交历史
git log --pretty=oneline     查看排版的日志
git log --oneline  输出概要日志(等同于git log --pretty=oneline --abbrev-commit)
git log --oneline -5   指定最近几个提交可以带上
git log --graph --date=relative --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ad)%Creset'   提供类似 GUI 工具的 log 展示, 相对提交时间展示
git log -p -2    参数-p展开每次提交的内容差异,用-2显示最近的两次更新
git reflog:查看命令历史。可用来确定要回到未来的哪个版本。
  • 远程操作

git remote add origin [email protected]:GitHubName/repo-name.git:关联一个GitHub远程库。通用结构:git remote add origin git@server-name:path/repo-name.git。
git push -u origin master:第一次向远程库推送master分支的所有内容。
git push origin master:向远程库推送最新修改。
git pull:抓取远程的新提交,保持本地和远程同步。
git pull origin master:把master分支的最新状态抓取到本地。
git remote -v:查看远程库信息。


git checkout -b branch-name origin/branch-name:在本地创建和远程分支对应的分支,名称最好一致。
git branch --set-upstream branch-name origin/branch-name:建立本地分支和远程分支的关联。
git push origin :推送某个标签到远程。
git push origin --tags:一次性推送全部尚未推送到远程的本地标签。
git push origin:refs/tags/:删除远程标签。(先删除本地的标签)
  • 分支操作

git branch:查看所有分支
git branch :创建分支
git checkout dev  分支切换# local branch
git checkout origin/test 切换远程分支
git checkout --track origin/feature-test   基于远程分支创建本地分支,并跟踪对应来自 'origin' 的远程分支
git checkout -b testbranch  基于本地分支开出新分支
git checkout -- file    彻底丢弃某个文件的改动
git checkout .    放弃本地所有改动

# 切换上一个分支
git checkout -
\\
git merge :合并某个分支都当前分支
git branch -d :删除分支
git merge --no-ff -m "描述" :记录分支情况的合并分支方法。
  • stash操作

git stash:储藏当前工作状态
git stash list:查看储藏的工作列表。
git stash apply:应用最新的储藏,恢复工作状态,但恢复后stash的内容并不删除。
git stash apply stash@{2}    如果想应用更早的储藏
git stash apply --index    重新应用被暂存的变更,需要加上--index参数 
git stash drop    删除最近一次stash的内容
git stash drop stash{0}     删除指定一次stash的内容
git stash clear    清空所有的stash内容。
git stash pop    恢复工作状态并删除相关stash内容。

在某些情况下,你可能想应用储藏的修改,在进行了一些其他的修改后,又要取消之前所应用储藏的修改。Git没有提供类似于 stash unapply 的命令,但是可以通过取消该储藏的补丁达到同样的效果:git stash show -p stash@{0} | git apply -R;同样的,如果你沒有指定具体的某个储藏,Git 会选择最近的储藏:git stash show -p | git apply -R;
  • 标签操作

git tag:查看所有标签。
git tag -l "" 使用特定的搜索模式列出符合条件的标签
git tag -a v1.4 -m "my version 1.4"     创建一个含附注类型的标签,需要加-a参数
git show v1.4    使用git show命令查看相应标签的版本信息,并连同显示打标签时的提交对象
git tag :新建一个标签。
git tag -v  验证已签署的标签
git tag -a  -m "描述":新建标签并指定标签信息。
git tag -s  -m "描述":PGP签名标签。
git tag -d :删除一个本地标签。
git push origin :推送某个标签到远程。
git push origin --tags:一次性推送全部尚未推送到远程的本地标签。
git push origin :refs/tags/:删除远程标签。(先删除本地的标签)

你可能感兴趣的:(Git 简便安装方法及常用命令总结)