远程推送
- 查看当前仓库的远程库信息:
git remote -v
- 从本地创建与远程分支对应的分支:
git checkout -b local-branch-name origin/remote-branch-name
- 查看本地分支与远程分支的的关联情况:
git branch -vv
- 建立本地分支与远程分支的关联:
git branch --set-upstream-to=origin/remote-branch-name local-branch-name
- 从远程抓取分支,如果有冲突,要先处理冲突:
# 从远程库拉取最新的版本合并到本地版本库
git pull <origin> <remote-branch-name>
# 更新本地远程库到最新的版本
git fetch <origin> <remote-branch-name>
# 合并本地远程库到当前本地库
git merge <origin/remote-branch-name>
- 从本地推送分支,如果推送失败,先抓取远程新提交再推送:
git push <origin> <remote-branch-name>
- Git 无法自动合并分支时,必须先解决冲突,解决后再提交,合并完成。查看分支合并图:
git log --graph
创建与合并分支
-
查看分支:
git branch
-
创建分支:
git branch <name>
-
切换分支:
git checkout <name>
-
创建+切换分支:
git checkout -b <name>
-
合并某分支到当前分支:
git merge <name>
-
删除分支:
git branch -d <name>
版本回退
-
HEAD
指向的版本就是当前版本,因此,Git
允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。 -
穿梭前,用
git log
可以查看提交历史,以便确定要回退到哪个版本。 -
要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
撤销修改
-
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file
。 -
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD file
,就回到了场景1,第二步按场景1操作。 -
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
删除文件
- 命令
git rm
用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
- 预览要删除的文件:
git rm -r -n --cached <directory>
or
gir rm -n --cached <file>
- 移除文件或目录的版本控制:
# 移除版本控制
git rm -r --cached <directory>
or
git rm --cached <file>
# 提交更改
git commit -m 'remove version control of file or directory'
git push <origin> <remote-branch-name>
- 移除文件
git rm <file>
git commit -m 'delete remote and local file'
git push <origin> <remote-branch-name>
- 命令
git clean
用于删除一些没有git add
的文件
- 显示将要删除的文件和目录
git clean -n
- 删除文件或目录
# 删除文件和目录
git clean -df
# 删除文件
git clean -f
标签管理
- 打一个新的标签
# 默认为 HEAD,也可指定 commit id
git tag <tag name>
git tag <tag name> <commit id>
git tag -a <tag name> -m "标签的注释" <commit id>
- 查看所有标签
git tag
- 查看指定标签信息
git show <tag name>
- 删除本地标签
git tag -d <tag name>
- 推送标签到远程
# 推送某个标签
git push origin <tag name>
# 推送所有标签
git push origin --tags
- 删除远程标签
# 先从本地删除
git tag -d <tag name>
# 然后从远程删除
git push origin :refs/tags/<tag name>
全局缩写
- 查看版本日志
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
- 查看状态
git config --global alias.st "status"
网友评论