git小白的命令行初体验

现在版本控制使用git的挺多,之前常用SVN,偶尔使用Git也是使用可视化工具操作(sourcTree,IDE自带的Git功能),之前不求甚解,所以对git的了解相当浅薄,后来遇到问题只能一次一次去查资料,后来用的多了就觉得麻烦,所以整理一下git的相关命令行操作,以备后用!因为分值操作相关较多且稍复杂,统一放在文章后面

git最常用的基本命令

1.查看当前git版本(判断是否安装过git)

git --version

2.git下载代码

git clone http://gitlab.tech.xxx.com/xxx/backend-view.git


项目地址在gitlab项目地址复制粘贴即可(全局配置权限后以后即可不用输入,不再赘述)

3.修改编辑项目常用

// 查看当前仓库文件状态(常在提交文件之前查看,会显示新增文件删除文件,已修改文件等状态)
git status// 添加文件
git add .    // 添加所有已修改文件
git add fileName   // 添加指定文件名的文件(可在git status返回中复制)// 提交修改说明
git commit -m "修改的内容"    // 记录当前提交的主题 以便区分每次提交的内容// 拉取代码
git pull    // 拉取代码  push之前pull一次代码  (尤其多人开发一定注意push之前先pull)
git pull origin <远程分支名>     // 将远程指定分支 拉取到 本地当前分支上
git pull origin <远程分支名>:<本地分支名>     // 将远程指定分支 拉取到 本地指定分支上
git pull origin    // 将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支)// 推送代码
git push    // 推送代码到远程仓库
git push origin <本地分支名>    // 将本地当前分支 推送到 与本地当前分支同名的远程分支上(注意:pull是远程在前本地在后,push相反)
git push origin <本地分支名>:<远程分支名>     // 将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反)
git push origin     // 将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支)git push --set-upstream origin      // <本地分支名>将本地分支与远程同名分支相关联

4.分支相关

git branch      // 查看本地分支(名称前面加* 号的是当前的分支)
git branch -a      // 查看分支,远程分支会用红色表示出来(如果你开了颜色支持的话)
git branch -vv      // 查看本地分支和远程分支对应关系
git remote      // 列出所有远程主机
git remote update origin --prune      // 更新远程主机origin(gitlab有新分支,本地查看分支无法查看到的时候使用)
git branch -r       // 列出远程分支
git branch -vv       // 查看本地分支和远程分支对应关系
git checkout -b dev origin/dev      // 新建本地分支dev与远程dev分支相关联

4.1 新建分支相关

git checkout -b newBranch
git push origin newBranch:newBranch    // 把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):

4.2 删除分支相关
4.2.1 删除本地分支

git branch -D newBranch    // 删除本地 newBranch 分支
git checkout newBranch    // 如果需要重新拉取远程的newBranch分支 执行

4.2.2 删除远程分支

git push origin :delBranchName
git push origin --delete delBranchName
// 切换分支,分支跟踪, 本地分支和远程分支的关系
git branch branchName     // 创建分支
git checkout branchName     // 切换分支
git branch -d branchName     // 删除本地分支git branch -r -d origin/branch-name
git push origin :branch-name     // 删除远程分支// 如果远程新建了一个分支,本地没有该分支,git checkout --track origin/ branchName ,这时本地会新建一个分支名叫  branchName,会自动跟踪远程的同名分支 branchName。
git checkout --track origin/branchName// 如果本地新建了一个分支 branchName,但是在远程没有。这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用 git push --set-upstream origin branchName ,这样就可以自动在远程创建一个 branchName 分支,然后本地分支会 track 该分支。后面再对该分支使用 push 和 pull 就自动同步。
git push --set-upstream origin branchName// 合并分支(多人开发中,经常一人一个分支,各自在自己分支开发,开发完成以后合并到某一个指定分支,没有问题后最后合并到master主分支,我们的流程是各自在自己的develop开发,开发完成以后合并到lastest分支,没有问题后提交合并申请到master分支,由leader审批是否统一合并到master,因为很多新人不太清楚代码的具体用途,所以讲的稍微详细点,明白命令的实现目的能更好的掌握使用,后面会有具体的操作流程)
1.本地代码依次
git status
git add
git commit -m ""
git pull
git push (develop-author分支,即自己的开发分支)
以后(把本地代码推送到远程对应分支)
2.git checkout lastest (切换到lastest分支)
3.git pull origin lastest  (先把远程lastest分支修改内容拉取,多人开发,需要把远程lastest上的代码pull下来)
4.git  merge develop-author   (合并自己的分支到lastest)




5 git stash相关(临时保存当前工作区修改)
其实这个我并不经常用,所以理解可能不足,粗略讲下自己的想法, git stash 常用于 多人开发项目,例如:正式环境代码在master,自己开发在dev,当你正在dev开发或修改时,正式环境有个紧急问题需要解决,但是你dev分支的修改只进行了一半,不方便提交时可以利用git stash 将工作区修改过的内容临时保存起来,切换回master修改完紧急内容会回来可以再取出来临时保存的修改继续操作(还是不太理解的话,再举个不是很恰当的例子,比如你有一些文件在特定环境下必须通过U盘拷到另一个电脑上,只是举个例子,别说说用qq蓝牙邮件什么的传输,但是U盘储存空间不足以保存需要传输的内容大小,也不能分批次传输,这种情况相信大家都能想到先把U盘已有的内容剪切到电脑上,腾出空间储存需要拷贝的资料,等拷贝到目标电脑以后再把U盘原有文件恢复到U盘即可,这个过程就相当于 git stash最基本的用途)。说了这么多,看重点吧

(1)git stash save "save message"  : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。(2)git stash list  :查看stash了哪些存储(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1} (6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储(8)git stash clear :删除所有缓存的stash有时也可通过这种方法实现避免或解决冲突,当你修改的内容是最新的,但是你需要pull下来的代码是需要被替换的,你pull的时候还是会冲突,可以先把你的修改stash临时保存,pull完代码以后在恢复stash的保存,即可替换pull下来的需要被替换的代码,当然不保存直接对比解决冲突也是可以的,看个人喜好了。其他更好的用途相信在遇到更多问题的时候会慢慢发掘出来

暂时想到的常用的基本就这些了,关于多人开发冲突解决的有时候自己提交的时候 pull或push失败 可以查看git status 是否多出了一些绿色的文件名称,检查文件没有 ====的冲突提示以及修复冲突以后重新提交即可

<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

如果提交的过程中发现进入了VIM编辑器 出现#开头的代码 无法继续操作的时候,可以尝试 切换到大写 输入ZZ 即可解决
还有一种情况需要:q 然后输入A 具体问题遇到可以搜索匹配一下

git命令行操作指南(git指令及使用场景详解及git stash、git branch、git分支关联等)相关推荐

  1. Python 命令行解析器argparse及传参数详解

    源码实例一 from argparse import ArgumentParserparser = ArgumentParser(description='Beeswarm')group = pars ...

  2. 命令行中 python -v 和 python -V 详解

    看了好多帖子说 "python -v 是包括库的版本号,而 python -V 才是版本号",特意去搜了下官方文档,证实如上说法并不对,以下是详解: 来源:https://docs ...

  3. 常用的Git命令行指令以及图形化界面的简单操作

    命令行操作 常用指令 指令 作用 指令 作用 cd 打开目录 pwd 绝对路径 ls 列出清单 mkdir 新建目录 cp 拷贝 mv 移动 rm 移除 touch 创建文档 一.git版本管理的指令 ...

  4. 使用Git命令行推送代码到远程仓库,阿里云效Codeup代码管理平台

    项目提交暂存.提交本地仓库.拉取.推送: [本步骤是新项目流程]请自行根据自有项目分辨是否需要跳过前两步. 右键点击项目根文件夹,选中Git Bash Here,打开命令行. (1)初始化项目命令: ...

  5. 如何用git命令行上传本地代码到github

    如何用git命令行上传本地代码到github 2016年09月19日 16:10:36 阅读数:9337 注意:安装的前提条件是配置好git的相关环境或者安装好git.exe,此处不再重点提及 上传的 ...

  6. git命令行完全解读

    BY 张建成(prettyEcho@github) 除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享 原文地址deep.js , 欢迎 评论 和 star ?? 欢迎 ...

  7. 关于使用 git 命令行来和“码云”账号上的项目互通过程的基础步骤

    前提:已经有码云账号,电脑已经安装了git工具. (1)在码云账号上登陆自己的账号,创建一个新的项目. (2)在自己的本地磁盘下随便创建一个文件夹(例如起名为:mayun),用来存放从码云上拉下来的项 ...

  8. 【重要】使用Git命令行上传到GitHub上

    [本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...

  9. 如何使用git命令行上传项目到github

    参考文献: 如何使用git命令行上传项目到github 感谢楼主分享!

  10. Git命令行介绍和使用说明(持续更新)

    Git命令行介绍和使用说明(持续更新) Git命令行介绍和使用说明(持续更新) 文档名称 Git命令行介绍和使用说明会 创建时间 2012/8/23 修改时间 2012/8/23 创建人 Baifx ...

最新文章

  1. 你的团队推行「敏捷」遇到多少坑?来看团队敏捷转型之旅必经12阶段
  2. 解决运行eclipse内存不足的问题
  3. ssh不断开的设置方法
  4. React学习:ref调用、组件封装调用-学习笔记
  5. DateOnly和TimeOnly类型居然不能序列化!!! .Net 6下实现自定义JSON序列化
  6. 前后台分离之数据模拟
  7. 统计一个字符在另一个字符串中出现的次数
  8. 9 Fresh jQuery Media Players
  9. 安装在电脑上的网络测试软件,iperf3 网络测试工具
  10. 机器人带陀螺仪走钢丝_一言不合就走钢丝,机器人化身“七变美男子”,萌翻你!...
  11. verilog异步复位jk触发器_同步复位和异步复位常见问题总结
  12. 每天工作4小时的程序员_IT新闻_博客园
  13. unity 获得当前物体_unity 获取物体尺寸
  14. 自动驾驶7-3 最终项目解决方案 Final Project Solution
  15. 小米球Ngrok内网穿透教程
  16. 使用3CDaemon软件搭建FTP来上传/下载交换机文件文件
  17. 数学——每日一题7 1.14 利用定积分的定义求极限
  18. (建议收藏)服务器宕机,效率排查攻略V2.0
  19. android记事本答辩,安卓记事本毕业答辩论文.doc
  20. Java - 为什么不能根据返回类型来区分重载?

热门文章

  1. unity3D人物动画
  2. 音乐中级职称需要计算机考试内容,计算机职称考试题库及答案
  3. 大牛直播SDK(android/iOS部分)最新功能列表
  4. matlab 计算hog特征,Matlab计算图像HOG特征
  5. php镜像站群_【镜像站群系统】2020最新单域名PHP网站克隆镜像网站程序源码
  6. gson读取json字符串_用Gson解析json文件
  7. 《分布式系统架构:技术栈详解与快速进阶》导读
  8. Android adb shell刷机命令实战
  9. 号称最安全的Mega网盘加密方法分析
  10. 惠普服务器故障代码_惠普服务器常见问题及故障排除