Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 —— 百度百科

迁出代码库

$ git clone git://github.com/jquery/jquery.git

查看远程分支

$ git branch  # 查看本地所有分支
$ git branch -r  # 查看远程分支
$ git branch -a  # 查看本地和远程所有分支
$ git branch [name]  # 创建本地分支 注意:新分支创建后不会自动切换为当前分支
$ git branch -d [name]  # -d 选项只能删除已经参与了合并的分支, 对于未有合并的分支是无法删除的
$ git branch -D [name]  # -D 选项强制删除一个分支

更新本地分支记录

$ git fetch    # 获取远程新增的版本

拉取一个远程分支,并使用

$ git checkout [name] # 拉取远程同名分支到本地
$ git checkout -b [name] # 创建新分支并立即切换到新分支
$ git checkout -b 20171101 origin/20181101 # 拉取远程分支到本地,并新命名

拉取远程分支内容到本地

$ git pull

合并分支

$ git merge [name]  # 将名称为[name]的分支与当前分支合并

远程分支

$ git push origin [name]  # 创建远程分支(本地分支 push 到远程)
$ git push origin :heads/[name]  # 删除远程分支

签入本地修改

$ git add .
$ git commit -m '备注'
$ git push
# 需要经过CodeReview的Push
$ git push origin HEAD:refs/for/20171101

放弃本地修改及还原刚才的修改

$ git stash
$ git stash pop

代码重置到某个版本

$ git reset --hard HEAD^  # 回退到上个版本
$ git reset --hard HEAD~3  # 回退到前3次提交之前
$ git reset --hard commitID  # 退到/进到 指定的commit,比如:ea34578
$ git push origin HEAD --force  # 强退至远程

# 回退到某个commit 推送远程,步骤如下
$ git log --pretty=oneline  # 先查询对应的提交历史
$ git reset --soft commitID # 只删除commitID之后的提交记录log,代码的改动还在。
$ git reset --hard commitID # 彻底删除commitID之后所做的改动,代码也一起回退回来了。
$ git push -f origin master # 把当前分支push到远程仓库并且让远程仓库和当前分支保持一致,使用如下命令(假定当前分支为master)

版本(tag)操作相关命令

$ git tag  # 查看版本
$ git tag [name]  # 创建版本
$ git tag -d [name]  # 删除版本
$ git tag -r  # 查看远程版本
$ git push origin [name]  # 创建远程版本(本地版本 push 到远程)
$ git push origin :refs/tags/[name]  # 删除远程版本

子模块(submodule)相关操作命令

$ git submodule add [url] [path]  # 添加子模块
$ git submodule init  # 初始化子模块,只在首次检出仓库时运行一次就行 
$ git submodule update  # 更新子模块,每次更新或切换分支后都需要运行一下 
$ git rm --cached [path]  # 删除子模块

忽略文件操作

忽略一些文件、文件夹不提交 在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件, 每个元素占一行即可,如 target bin *.db