git操作命令

git的介绍

简单介绍

Git是一个分布式版本控制软件,最初由Linus Torvalds创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。

Git工作流程以及各个区域

git 工作流程

  • Workspace:工作区
  • Staging/Index:暂存区
  • Local Repository:本地仓库(可修改)
  • /refs/remotes:远程仓库的引用(不可修改)
  • Remote:远程仓库

Git各种命令

Git简单命令
# 在当前目录新建一个git仓库
git init

# 打开git仓库图形界面
gitk

# 显示所有变更信息
git status

# 删除所有Untracked files
git clean -fd

# 下载远程仓库的所有更新
git fetch remote

# 下载远程仓库的所有更新,并且Merge
git pull romote branch-name


# 查看上次commit id
git rev-parse HEAD 

# 将指定分支合并到当前分支
git merge branch-name

# 将最近的一次commit打包到patch文件中
git format-patch HEAD^ 

# 将patch文件 添加到本地仓库
git am  patch-file

# 查看指定文件修改历史
git blame file-name

Git常用命令
git clone 克隆
# 将远程git仓库克隆到本地
git clone url

# 将远程git仓库克隆到本地
git clone -b branch url 
git stash 恢复
# 将修改过,未add到Staging区的文件,暂时存储起来
git stash

# 恢复之前stash存储的内容
git stash apply

# 保存stash 并写message
git stash save "stash test"

# 查看stash了哪些存储
git stash list

# 将stash@{1}存储的内容还原到工作区
git stash apply stash@{1}

# 删除stash@{1}存储的内容
git stash drop stash@{1}

# 删除所有缓存的stash
git stash clear
git config 配置项
# 配置git图形界面编码为utf-8
git config --global gui.encoding=utf-8 

# 设置全局提交代码的用户名 
git config --global user.name name  
# 设置全局提交代码时的邮箱
git config --global user.email email
# 设置当前项目提交代码的用户名 
git config user.name name  
git remote 远程仓库
# 显示所有远程仓库
git remote -v  

#  增加一个新的远程仓库
git remote add name url 

#  删除指定远程仓库
git remote remove name

# 获取指定远程仓库的详细信息
git remote show origin
git add 添加
# 添加所有的修改到Staging区
git add .
git add --all  

# 添加指定文件到Staging区
git add file   

# 添加多个修改的文件到Staging区
git add file1 file2   

# 添加修改的目录到Staging区
git add dir

# 添加所有src目录下main开头的所有文件到Staging区    
git add src/main*  
git commit 提交

# 提交Staging区的代码到本地仓库区
git commit -m "message"  

# 提交Staging中在指定文件到本地仓库区
git commit file1 file2 -m "message"  

# 使用新的一次commit,来覆盖上一次commit
git commit --amend -m "message" 

# 修改上次提交的用户名和邮箱
git commit --amend --author="name <email>" --no-edit
git branch 分支
# 列出本地所有分支
git branch   

# 列出本地所有分支 并显示最后一次提交的哈希值
git branch -v

# 在-v 的基础上 并且显示上游分支的名字
git branch -vv

# 列出上游所有分支
git branch -r  

# 新建一个分支,但依然停留在当前分支
git branch branch-name  

# 删除分支
git branch -d branch-name   

# 设置分支上游
git branch --set-upstream-to origin/master

# 本地分支重命名
git branch -m old-branch new-branch
git checkout 创建分支
# 创建本地分支并关联远程分支
git checkout -b local-branch origin/remote-branch

# 新建一个分支,且切换到新分支
git checkout -b branch-name

# 切换到另一个分支
git checkout branch-name  

# 撤销工作区文件的修改,跟上次Commit一样
git checkout commit-file  
git tag 标签
# 创建带有说明的标签
git tag -a v1.4 -m 'my version 1.4'

#  打标签
git tag tag-name

# 查看所有标签
git tag 

# 给指定commit打标签
git tag tag-name commit-id

# 删除标签
git tag -d tag-name   
git push 推送
# 删除远程分支
git push origin :master   

#  删除远程标签
git push origin --delete tag tag-name

# 上传本地仓库到远程分支
git push remote branch-name

# 强行推送当前分支到远程分支
git push remote branch-name --force

# 推送所有分支到远程仓库
git push remote --all  

# 推送所有标签
git push --tags

# 推送指定标签
git push origin tag-name

#  删除远程标签(需要先删除本地标签)
git push origin :refs/tags/tag-name  

# 将本地dev分支push到远程master分支
git push origin dev:master
git reset 重置
# 将未commit的文件移出Staging区
git reset HEAD

# 重置Staging区与上次commit的一样
git reset --hard  

# 重置Commit代码和远程分支代码一样
git reset --hard origin/master

# 回退到上个commit
git reset --hard HEAD^

# 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard HEAD~3

回退到指定commit
git reset --hard commit-id  
git diff 查看仓库
# 查看文件在工作区和暂存区区别
git diff file-name

# 查看暂存区和本地仓库区别
git diff --cached  file-name

# 查看文件和另一个分支的区别
git diff branch-name file-name

# 查看两次提交的区别
git diff commit-id commit-id  
git show 查看提交信息
# 查看指定标签的提交信息
git show tag-name

# 查看具体的某次改动
git show commit-id 
git log 查看历史
# 指定文件夹 log
git log --pretty=format:"%h %cn %s %cd" --author="iisheng\|胜哥"  --date=short src
# 查看指定用户指定format 提交
  git log --pretty=format:"%h %cn %s %cd" --author=iisheng --date=short 

# 查看该文件的改动历史
git log --pretty=oneline file

# 图形化查看历史提交
git log --graph --pretty=oneline --abbrev-commit

# 统计仓库提交排名前5
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

# 查看指定用户添加代码行数,和删除代码行数
git log --author="iisheng" --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 } END { printf "added lines: %s removed lines : %s \n",add,subs }'
git revert 撤销
# 撤销前一次commit
git revert HEAD

# 撤销前前一次commit
git revert HEAD^

# 撤销指定某次commit
git revert commit-id
git rebase 合并分支
# 将指定分支合并到当前分支
git rebase branch-name

# 执行commit id 将rebase 停留在指定commit 处
git rebase -i commit-id

# 执行commit id 将rebase 停留在 项目首次commit处
git rebase -i --root
git restore 恢复第一次add的文件
# 恢复第一次add 的文件,同 git rm --cached
git restore --staged file

# 移除staging区的文件,同 git checkout
git restore file
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值