Git常用操作

远程推送

  1. 查看当前仓库的远程库信息:
git remote -v
  1. 从本地创建与远程分支对应的分支:
git checkout -b local-branch-name origin/remote-branch-name
  1. 查看本地分支与远程分支的的关联情况:
git branch -vv
  1. 建立本地分支与远程分支的关联:
git branch --set-upstream-to=origin/remote-branch-name local-branch-name
  1. 从远程抓取分支,如果有冲突,要先处理冲突:
# 从远程库拉取最新的版本合并到本地版本库
git pull  
# 更新本地远程库到最新的版本
git fetch  
# 合并本地远程库到当前本地库
git merge 
  1. 从本地推送分支,如果推送失败,先抓取远程新提交再推送:
git push  
  1. Git 无法自动合并分支时,必须先解决冲突,解决后再提交,合并完成。查看分支合并图:
git log --graph

创建与合并分支

  • 查看分支:git branch

  • 创建分支:git branch

  • 切换分支:git checkout

  • 创建+切换分支:git checkout -b

  • 合并某分支到当前分支:git merge

  • 删除分支:git branch -d

版本回退

  1. HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

  2. 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

  3. 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

撤销修改

  1. 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

  2. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

  3. 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除文件

  • 命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
  1. 预览要删除的文件:
git rm -r -n --cached 
or
gir rm -n --cached 
  1. 移除文件或目录的版本控制:
# 移除版本控制
git rm -r --cached 
or
git rm --cached 
# 提交更改
git commit -m 'remove version control of file or directory'
git push  
  1. 移除文件
git rm 
git commit -m 'delete remote and local file'
git push  
  • 命令 git clean 用于删除一些没有 git add 的文件
  1. 显示将要删除的文件和目录
git clean -n
  1. 删除文件或目录
# 删除文件和目录
git clean -df
# 删除文件
git clean -f

标签管理

  1. 打一个新的标签
# 默认为 HEAD,也可指定 commit id
git tag 
git tag  
git tag -a  -m "标签的注释" 
  1. 查看所有标签
git tag
  1. 查看指定标签信息
git show 
  1. 删除本地标签
git tag -d 
  1. 推送标签到远程
# 推送某个标签
git push origin 
# 推送所有标签
git push origin --tags
  1. 删除远程标签
# 先从本地删除
git tag -d 
# 然后从远程删除
git push origin :refs/tags/

全局缩写

  1. 查看版本日志
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"


  1. 查看状态
git config --global alias.st "status"

你可能感兴趣的:(Git常用操作)