git 笔记/常用指令

Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。
创建版本库
1、版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:
$ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit
pwd命令用于显示当前目录。在我的Mac上,这个仓库位于/Users/michael/learngit。
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
git --version
查看当前git版本
git init
把当前目录变成Git可以管理的仓库
git config
配置个人的用户名称和电子邮件地址:
git config --global user.name "runoob" git config --global user.email test@runoob.com
git config --list
查看已有的配置信息
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,git config user.name
git clone <版本库的网址>
将存储库克隆到新目录中,该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数,git clone <版本库的网址> <本地目录名>
git branch
查看本地分支
git branch -a
查询当前所有分支,包括本地分支和远程分支
git branch -v
查看各个分支最后一次提交
git branch –merged
查看哪些分支合并入当前分支
git branch –no-merged
查看哪些分支未合并入当前分支
git branch newBranchName
创建一个新的分支
git checkout branchName
切换分支
 git checkout -b branchName
创建并切换分支
git merge branchName
把branchName合并到当前分支
git rebase master
更新master主线上的东西到当前分支上
git merge和rebase的区别
假设现在有两个分支 A B
1. 在B分支上执行 git merge A 后 A就被合到B上了
2. 在B分支上执行 git rebase A 后,效果与merge是一样的,但是 A就没有了,两个分支就合在一起了。
git push origin branchName
将本地分支推送到Git服务器,生成远程分支。
git fetch origin branchName:branchName
更新远程库到本地
或者先切到本地分支内,执行git fetch origin branchName即可。
git merge origin/mybranch
取远程分支合并到本地
git checkout -b mybranch origin/mybranch
取远程分支并分化一个新分支
git pull
抓取远程仓库所有分支更新并合并到本地
git pull origin master
抓取远程仓库指定分支更新并合并到本地
git log
列出该文件的历史提交版本,能看到提交的版本号和提交的注释信息,以便确定要回退到哪个版本。
git log --pretty=oneline 输出简化信息
git reflog
记录每一次命令,查看命令历史,以便确定要回到未来的哪个版本。
git diff
对比该文件两个版本的不同。
git status
查看当前分支状态
git add fileName
告诉Git,把文件添加到仓库,实际上就是把文件修改添加到暂存区
git add . 可添加全部修改文件
git commit -a
git commit -m "备注信息",实际上就是把暂存区的所有内容提交到当前分支。
提交
git reset --hard HEAD^
HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset --hard commitId
可以指定回到未来的某个版本,版本号没必要写全,前几位就可以了,Git会自动去找。
git branch -d branchName
删除本地分支
git push origin --delete develop
删除远程分支
git remote -v
查看远程服务器地址和仓库名称
git remote show origin
查看远程服务器仓库状态
开发规范总结:
开发过程中每个工程师在推送代码之前要先执行拉取操作,因为远程仓库有更新的话,不先拉取(pull/fetch)是无法推送(push)的,尽量少使用git pull进行拉取,而是先用git fetch拉取在进行git merge。
团队开发禁止在主干直接修改代码,一定要开分支,而且是远程分支进行开发。
创建分支可以打标签,git tag。
拉取代码时最好先git fetch再git merge而不是直接git pull。
提交代码和推送代码以及代码上线之前,一定要先和原来版本对比 git diff 。
提交代码加注释 git commit -m 'Bob developed' 。
author:Lik
Endeavoring to powerless, struggling to move yourself.
原文地址:https://www.cnblogs.com/likwin/p/7722805.html