Git提交本地代码,以及常用的指令总结

前言

最近要准备SAP的面试,它会考察JAVA知识点、数据库的知识,以及Git的一些常用命令,我平常协同开发用的都是TortoiseGit这么一个软件来提交代码,非常的方便。但是没办法,还是要准备命令行。

  1. Git是什么?
    Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
    Git的功能特性:
    从一般开发者的角度来看,git有以下功能:
    1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
    2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
    3、在单机上自己创建的分支上提交代码。
    4、在单机上合并分支。
    5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
    6、生成补丁(patch),把补丁发送给主开发者。
    7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
    8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
    在这里插入图片描述

命令解释

  1. 如何用命令行上传本地代码
    下面是实现上传本地代码的一个流程:
    (1)gihub上新建一个仓库
    (2)echo “# New Start !” >> README.md
    (3)git init
    (4)git add README.md
    (5)git commit -m “提交排序算法代码”
    (6)git remote add origin https://github.com/GSshu/Sort.git (如果出现错误fatal,采用 git remote rm origin来解决)
    (8)git push -u origin master
    (9)git fetch 获取远程仓库中所有的分支到本地
    这样就实现了把本地的代码传到了你在Github上的远程仓库。

  2. 常用的Git命令总结
    (1)远程仓库操作
    git clone git://https://github.com/GSshu/Sort.git 检查仓库
    git remote -v 查看远程仓库
    git remote add [name] [https://github.com/GSshu/Sort.git ] 添加远程仓库
    git remote rm [name] 删除远程仓库
    git pull [remoteName] [localBranchName] 拉取远程仓库
    git push [remoteName] [localBranchName] 推送远程仓库
    (2)分支操作:
    git branch 创建分支,查看本地分支
    git branch -r 查看远程分支
    git checkout 切换分支
    git branch -a 查看分支列表
    git branch -v 查看所有分支的最后一次操作
    git branch -vv 查看当前分支
    git brabch -b 分支名 origin/分支名 创建远程分支到本地
    git branch --merged 查看别的分支和当前分支合并过的分支
    git branch --no-merged 查看未与当前分支合并的分支
    git branch -d 分支名 删除本地分支
    git branch -D 分支名 强行删除分支
    git branch origin :分支名 删除远处仓库分支
    git merge 分支名 合并分支到当前分支上
    (3)暂存操作:
    git stash 暂存当前修改
    git stash apply 恢复最近的一次暂存
    git stash pop 恢复暂存并删除暂存记录
    git stash list 查看暂存列表
    git stash drop 暂存名(例:stash@{0}) 移除某次暂存
    git stash clear 清除暂存
    (4)回退操作:
    git reset --hard HEAD^ 回退到上一个版本
    git reset --hard ahdhs1(commit_id) 回退到某个版本
    git checkout – file撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,如果文件加入到了版本库,则还原至加入版本库之后的状态)
    git reset HEAD file 撤回暂存区的文件修改到工作区
    (5)标签操作:
    查看版本:$ git tag
    创建版本:$ git tag [name]
    删除版本:$ git tag -d [name]
    查看远程版本:$ git tag -r
    创建远程版本(本地版本push到远程):$ git push origin [name]
    删除远程版本:$ git push origin :refs/tags/[name]
    合并远程仓库的tag到本地:$ git pull origin --tags
    上传本地tag到远程仓库:$ git push origin --tags
    创建带注释的tag:$ git tag -a [name] -m ‘yourMessage’
    (6)常规操作:
    git push origin test 推送本地分支到远程仓库
    git rm -r --cached 文件/文件夹名字 取消文件被版本控制
    git reflog 获取执行过的命令
    git log --graph 查看分支合并图
    git merge --no-ff -m ‘合并描述’ 分支名 不使用Fast forward方式合并,采用这种方式合并可以看到合并记录
    git check-ignore -v 文件名 查看忽略规则
    git add -f 文件名 强制将文件提交
    (7)取消忽略文件:
    git update-index --no-assume-unchanged file
    (8)拉取、上传免密码:
    git config --global credential.helper store

  3. Git命令解释
    现在我们有了本地和远程的版本库,让我们来试着用用Git的基本命令:
    git pull: 从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地。
    git add: 是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步。
    git rm: 从当前的工作空间中和索引中删除文件。
    git commit: 提交当前工作空间的修改内容,类似于SVN的commit命令。
    git push: 将本地commit的代码更新到远程版本库中。
    git log: 查看历史日志,该功能类似于SVN的log
    git revert: 还原一个版本的修改,必须提供一个具体的Git版本号。

  4. Git独有的一些命令:
    git branch: 对分支的增、删、查等操作,例如’git branch new_branch’会从当前的工作版本创建一个叫做new_branch的新分支,'git branch -D new_branch’就会强制删除叫做new_branch的分支,'git branch’就会列出本地所有的分支
    git checkout: Git的checkout有两个作用,其一是在不同的branch之间进行切换,例如’git checkout new_branch’就会切换到new_branch的分支上去;另一个功能是还原代码的作用,例如’git checkout app/model/user.rb’就会将user.rb文件从上一个已提交的版本中更新回来,未提交的内容全部会回滚
    git reset: 将当前的工作目录完全回滚到指定的版本号,假设如下图,我们有A-G五次提交的版本,其中C的版本号是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我们执行了’git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20’那么结果就只剩下了A-C三个提交的版本
    git stash: 将当前未提交的工作存入Git工作栈中,时机成熟的时候再应用回来,这里暂时提一下这个命令的用法
    git config: 利用这个命令可以新增、更改Git的各种设置,例如’git config branch.master.remote origin’就将master的远程版本库设置为别名叫做origin版本库,后面在技巧篇会利用这个命令个性化设置你的Git,为你打造独一无二的 Git
    git tag: 可以将某个具体的版本打上一个标签,这样你就不需要记忆复杂的版本号哈希值了,例如你可以使用’git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20’来标记这个被你还原的版本,那么以后你想查看该版本时,就可以使用 revert_version标签名,而不是哈希值了

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值