Git使用过程中一些常用的语句
注:"{ }" 为可省略
git branch [branchname] 创建分支
git branch 查看当前分支
git checkout [branchname] 切换到新的分支
=>两个语句可以合并: git checkout -b [branchname]
git reset 撤销变更,向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
git revert 撤销变更,对大家一起使用的远程分支无效。
git branch -f [branchname] [ref]~[number] 移动分支。可以直接使用 -f 选项让分支指向另一个提交,令分支强制指向ref的第[number]级父提交。[ref]可以是任何能被 Git 识别成提交记录的引用
git merge [ref] 创建新的与[ref]的合并提交,不会移动当前分支工作
git cherry-pick [hash1] {[hash2]} 将[hash1][和[hash2]}的工作复制追加到当前分支
git rebase -i ref~[number] 弹出交互对话框,严格按照你在对话框中指定的方式进行了复制,[ref]可以是任何能被 Git 识别成提交记录的引用
git rebase [branch1] [branch2] 将分支[branch2]合并到分支[branch1]上
commit --amend 修改已经提交过的commit信息
git tag [tagname] [hash] 在[hash]处创建名为[tagname]的标签(锚点)
git describe {[ref]} 用于查找离[ref]最近的一个标签记录,如不填写[ref]的话会以目前所检出的位置(HEAD)。[ref]可以是任何能被 Git 识别成提交记录的引用
它的输出结果是这样:[tag]_[numCommits]_g[hash]
[tag]表示离ref最近的标签
numCommits表示ref与tag相差多少个提交记录
hash表示所给定的ref的提交记录哈希值的前几位
git clone 同部远程仓库
git fetch 从远程仓库获取数据,实际上将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态。git fetch 并不会改变你本地仓库的状态。它不会更新你的 master 分支,也不会修改你磁盘上的文件。
=]git pull 先抓取更新再合并到本地分支(git fetch 和 git merge [just-fetched-branch] 的缩写)
git pull --rebase 从远程仓库中同步到本地,并且将本地工作作为最新
git push {[remote] [place]}
切换到本地仓库的[place]分支,获取所有提交,再到远程仓库[remote]中找到[place]分支,将远程仓库中没有提交记录都添加上去。
git push origin [source]:[destination] 将本地仓库[source]分支提交到远程仓库的[destination]分支。如果远程仓库没有[destination]分支,则会自动创建。
如果git push origin :[destination] 通过传空值[source],则删除远程[destination]分支
git fakeTeamwork {[branchname]} {[number]} 向远程仓库中{[branchname]分支]做{[number]次]提交
设置远程追踪分支:
1.git checkout -b [branchname] o/master:创建一个名为 [branchname] 的分支,它跟踪远程分支 o/master。
2.git branch -u o/master [branchname] :设置一支名为[branchname]的分支跟踪远程分支o/master,如果当前分支在[branchname]上,可以省略[branchname]
以上。
如有不合理的地方或更好的建议,请不吝赐教,谢谢!