- 用户信息配置
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
- 检查配置信息
$ git config --list
- 检查 Git 的某一项配置
$ git config user.name
- 在现有目录中初始化本地仓库
$ git init
- 克隆现有的远程仓库
$ git clone https://github.com/libgit2/libgit2
- 克隆现有的远程仓库并自定义本地仓库的名字
$ git clone https://github.com/libgit2/libgit2 mylibgit
- 检查当前文件状态
$ git status
- 跟踪新文件
//这是个多功能命令,可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等
$ git add README
- 查看已暂存和未暂存的修改
$ git diff
- 提交更新
$ git commit
- 提交信息与命令放在同一行
$ git commit -m "Story 182: Fix benchmarks for speed"
- 跳过使用暂存区域提交信息
$ git commit -a -m 'added new benchmarks'
- 移除文件(要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。 可以用 git rm 命令完成此项工作)
$ git rm PROJECTS.md
- 移除文件(你想让文件保留在磁盘,但是并不想让 Git 继续跟踪)
$ git rm --cached README
- 重命名文件
$ git mv README.md README
- 查看提交历史
$ git log
- 查看每次提交的内容差异
$ git log -p
- 取消暂存的文件(危险命令)
$ git reset HEAD CONTRIBUTING.md
- 撤消对文件的修改(危险命令)
$ git checkout --CONTRIBUTING.md
- 查看远程仓库
$ git remote -v
- 添加一个新的远程 Git 仓库
git remote add <shortname> <url>
//例如 $ git remote add pb https://github.com/paulboone/ticgit
- 从远程仓库中抓取与拉取
$ git fetch [remote-name] //必须注意 git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作
$ git pull [remote-name] //git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。
- 推送到远程仓库
git push [remote-name] [branch-name]
//例如 $ git push origin master
- 查看远程仓库
git remote show [remote-name]
//例如 $ git remote show origin
- 远程仓库的移除与重命名
$ git remote rename pb paul
$ git remote rm paul
- 列出标签
$ git tag
- 创建标签(Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。)
$ git tag -a v1.4 -m 'my version 1.4' //创建附注标签(建议用这个)
$ git tag v1.4 //轻量标签
- 后期打标签
$ git tag -a v1.2 9fceb02 //9fceb02是校验和(或部分校验和)
- 共享标签(创建完标签后你必须显式地推送标签到共享服务器上)
git push origin [tagname]
//例如 $ git push origin v1.5
$ git push origin --tags //会把所有不在远程仓库服务器上的标签全部传送到那里
- 检出标签
git checkout -b [branchname] [tagname]
//例如 $ git checkout -b version2 v2.0.0
- 创建新分支(创建分支并不会切换到该分支)
$ git branch testing
- 切换分支
$ git checkout testing
- 创建并切换到该分支
$ git checkout -b iss53
- 合并分支
$ git checkout master //先切到要合的分支上
$ git merge hotfix //合并hotfix分支到master分支上
- 删除分支
$ git branch -d hotfix
- 获取所有的分支列表
$ git branch
- 推送
git push (remote) (branch)
//例如 $ git push origin serverfix
- 检出一个新分支并跟踪
$ git checkout --track origin/serverfix
- 拉取
git fetch //从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然后让你自己合并
- 删除远程分支
$ git push origin --delete serverfix
- 补丁(获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上)
git cherry-pick
网友评论