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

本文深入讲解Git的基础概念和核心功能,覆盖从服务器克隆仓库、本地分支管理到代码提交及远程同步的全过程。同时,提供了详尽的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标签名,而不是哈希值了

### 如何在Linux环境下使用Git提交并推送本地代码 要在Linux环境中通过Git提交并推送本地代码到远程仓库,可以按照以下方法操作: #### 初始化Git仓库 如果当前目录尚未初始化为Git仓库,则需要运行以下命令来创建一个新的Git仓库: ```bash git init ``` 此命令会将当前文件夹转换成一个Git版本控制的项目[^1]。 #### 添加文件至暂存区 当有新文件或者修改过的文件准备提交时,需先将其加入暂存区。假设我们有两个文件 `cat.txt` 和 `dog.txt` 需要被提交,可以通过如下命令实现: ```bash git add cat.txt dog.txt ``` 这一步骤告诉Git哪些更改应该包含在下一次提交中[^2]。 #### 提交变更至本地仓库 一旦所有希望提交的内容都已添加到了暂存区域之后,就可以执行实际的提交动作了。此时应提供一条有意义的消息描述此次更新的具体内容: ```bash git commit -m "Added cat.txt and dog.txt" ``` 上述指令完成了向本地存储库中的数据保存过程,并附带了一条简短说明作为记录的一部分。 #### 查看提交历史 为了确认刚刚完成的操作情况以及回顾之前的改动详情,可利用下面这条语句获取日志信息: ```bash git log ``` 它将以列表形式展示每一次commit的相关元数据,比如作者姓名、时间戳及备注文字等。 #### 推送至远程服务器 最后一步就是把已经存在于本地分支上的最新版推送到远端共享位置上去。如果是第一次上传该branch的话还需要指定目标地址参数-u选项设置默认上游链接以便未来简化流程;如果不是首次则无需额外配置直接调用push即可生效: ```bash git push -u origin master ``` 这里假定使用的主干名称叫做master并且对应的remote命名为origin。 --- #### 解决冲突后的继续处理方式 如果有未解决的merge/rebase冲突,在标记每一个解决了的问题之前不要急于做新的commits因为rebase过程中会有专门机制负责管理这些事情所以只需要简单地告知系统那些地方已经被修正好了就可以了接着再让程序自动完成剩下的部分就好啦!具体做法如下所示: ```bash git add <file> ``` 对于每个修复完毕的文档重复上面那步直到全部搞定为止然后再输入continue命令恢复正常的进程流向前发展下去吧😊: ```bash git rebase --continue ``` 注意此处并未涉及任何手动类型的commits由于前面提到的原因它们会被妥善安排好由内部逻辑去照顾呢??[^3]! --- ### 总结 以上就是在Linux平台之上运用Git工具来进行基本开发协作所需的几个核心环节概述希望能够对你有所帮助呀😉
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值