配置
- 查看配置信息:
git config --list
- 直接查看某个环境变量的设定:
git config user.name
git config user.email
- 查看git版本:
git --version
- 安装git:
sudo apt-get install git
- 配置名字:
git config --global user.name "Your Name"
- 配置邮箱:
git config --global user.email "email@example.com"
克隆、提交代码
-
git clone git@gitmobile.blued.cn:blued_mobile/git_test.git
:从远程仓库克隆 -
git clone <repo> <directory>
:克隆到指定的目录 -
git status
:查看仓库当前的状态 -
git status -s
:获得简短的结果输出 -
git pull --rebase
:更新代码,rebase
参数可以保证你即使进行了commit操作也不会额外生成一次快照 -
git diff
:尚未缓存的改动 -
git diff --cached
:查看已缓存的改动 -
git diff HEAD
:查看已缓存的与未缓存的所有改动 -
git diff --stat
:显示摘要而非整个 diff -
git add readme.txt
:添加文件修改到暂存区 -
git add *
:添加多个文件修改到暂存区 -
git reset HEAD <file>
:暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响 -
git rm --cached <file>
:直接从暂存区删除文件,工作区则不做出改变 -
git checkout .
git checkout -- <file>...
:用暂存区全部或指定的文件替换工作区的文件 -
git checkout HEAD .
git checkout HEAD <file>
:用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件 -
git commit -m "提交日志"
:将缓存区内容添加到仓库中 -
git commit -a
:如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。例如:git commit -am '修改 hello.php 文件'
-
git push origin master/develop/feature
:将代码提交到远程分支 -
git reset --hard HEAD~1
:恢复到之前的commit,1代表数量 -
git reset --hard commitID
:恢复到指定的commitID,这个命令比较危险,会把这条commitID之后的全部覆盖 -
git push --force
:恢复到某个commitID重新提交到远端 - 使用sourceTree可以撤销任何指定的提交记录,同样需要再提交一次。
-
git reset --hard e71ea349648eab13afa015f5cce5e7d0096625b4
:回退到指定版本 -
git stash / git stash pop
:保存当前本地的修改,无需提交到缓存区 -
git cherry-pick c492aa9
: 提交摸个节点到当前分支
branch
-
git branch
:查看当前分支。 -
git branch -r
:查看远程所有的分支。 -
git branch -a
:查看本地和远程所有的分支。 -
git branch xx
:创建分支 -
git branch -d xx
:删除分支 -
git branch -D xx
:强制删除分支 -
git checkoup xx
:切换到分支 -
git checkout -b xx
:创建并切换到当前分支 -
git merge b1
:合并分支b1到当前分支,需要b1在本地已拉取 -
vim 冲突文件
:当merge冲突时,需要手动解决冲突 -
git add 解决冲突后的文件
:解决完毕后需要再次添加 -
git cherry-pick 5b531cb8c62cdb8b5f10c406e41824a6388e3a82 6b531cb8c62cdb8b5f10c406e41824a6388e3a82
:从另外一个分支里面挑选一些commit到当前分支
提交历史
-
git log
:回顾下提交历史 -
git log 分支名/tag名/远程分支名
:指定log -
git log --oneline
:查看历史记录的简洁的版本 -
git log --graph
:查看历史中什么时候出现了分支、合并 -
git log --reverse --oneline
:逆向显示所有日志 -
git log --author
:查找指定用户的提交日志,例如:git log --author=Linus --oneline -5
-
--since
和--before
:指定日期,例如git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges -
--no-merges
:隐藏合并提交 -
git reflog
:查看每一次命令
标签
-
git tag -a v1.0
:创建一个带注解的标签 -
git tag -d v1.1
:删除标签 -
git tag -a v0.9 85fc7e7
:追加标签 -
git tag
:查看所有标签 -
git show v1.0
:查看此版本所修改的内容 -
git checkout v1.0
:切换到某个tag节点。-f
强制切换 -
git push origin --tags
: 将标签推送到origin分支 -
git push origin --delete tag <tagname>
删除远程tag - 可以基于某个tag拉取分支进行代码提交
协作
- 查看可以抓取和推送的远程地址:
git remote -v
子模块
-
git submodule init
:初始化 -
git submodule update
:更新
示意图
-
一个团队,理想情况下的分支是这样的:
上一篇:UISearchBar常用属性
下一篇:iOS图片滤镜