创建版本库
-
mkdir : 创建文件夹。例如,mkdir ibos 创建文件夹名为ibos的空文件夹
-
pwd : 显示当前目录
-
ls -ah : 查看当前目录下文件列表,包括隐藏文件夹/文件
版本回退
-
git log --pretty=oneline : 将log记录显示为一行,包含版本号及commit信息
-
HEAD : 表示当前版本,HEAD^ 表示上一个版本,HEAD~100 表示前100个版本
-
git reset --hard HEAD^ : 表示回退至上一个版本。也可以通过git log 查询需要回退的版本信息,获取commit id(可以只输入前半部分,git会自动模糊匹配),然后通过git reset --hard commitid 回退至对应版本
-
cat filename : 可以查看对应文件内容
-
git reflog : 查看命令历史
撤销修改
git checkout -- readme.txt : 把工作区readme.txt的修改全部撤销,这里面有两种情况:
- 一种是
readme.txt 自修改后还没有提交到暂存区,现在撤销修改后就跟版本库是一致的;
- 一种是
readme.txt 已经添加到暂存区,又做了修改,现在撤销修改后就回到暂存区的状态; 总之就是让这个文件回到最近一次git commit 或者git add 的状态
小结:
- 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file 。
- 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD file ,就回到了场景1,第二步按场景1操作。
- 已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
删除文件
git rm test.txt : 删除test文件 Tip: 若删错了,可以通过git checkout -- test.txt 恢复误删文件
git rm window -r -f : 删除window文件夹及其下所有的文件
删除本地分支
git branch -d branchname : 删除本地分支
删除远程分支
-
git push origin --delete : 删除远程分支
-
git push origin : : 删除远程分支
解决冲突
git log -graph : 可以查看分支合并图
分支管理策略
- 通常,合并分支时,如果可能,Git会用
Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。
- 如果要强制禁用
Fast forward 模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
-
git merge --no-ff -m 'merge with no-ff dev : 合并dev分支到当前分支,并且禁用Fast forward 模式。 因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
- 合并以后,可以通过
git log 来查看分支记录
BUG分支
-
git stash : 暂存工作区修改
-
git stash list : 查看工作区暂存内容列表
-
git stash apply : 恢复工作区暂存内容,但恢复后,stash内容不会删除,需要使用git stash drop 来删除
-
git stash pop : 恢复工作区暂存内容,并且删除stash内容
-
git stash cleat : 删除所有的stash
- 你可以多次stash,恢复的时候,先用
git stash list 查看,然后恢复指定的stash,用命令: git stash apply stash@{0}
Feature分支
- 如果要丢弃一个没有被合并过的分支,可以通过
git branch -D 强行删除。
多人协作
- 建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name
创建标签
-
git tag : 新建一个标签,默认是HEAD ,也可以指定一个commit id
-
git tag -a -m 'blala..' : 可以指定标签信息
-
git tag : 查看所有标签
-
git show : 查看某一标签的详细信息
操作标签
-
git tag -d : 删除本地标签
-
git push origin : 推送某一标签至远程分支
-
git push origin --tags : 一次性推送全部尚未推送的分支至远程
-
git push origin :refs/tags/ : 可删除一个远程标签
git别名
git config --global alias. : 简化命令 比如: git config --global alias.st status : 将git status 简化为git st
重命名分支
git branch -m : 重命名分支
Clone单一分支
git clonr -b --single-branch https://xxx.git : clone某一分支 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|