Csdn

将本地工程push到远程

方式一:
  1. 建立本地仓库

     git init
  2. 创建远程仓库:在github或者gitlab创建远程仓库

  3. 让本地仓库和远程仓库进行关联

     git remote add origin git@mycode.skylettestudio.com:xlPay/XLPay.git
  4. 进行添加和提交操作

     git add .
    git commit -m"添加文件"
  5. push到远程

    git push -u origin master

由于远程库是空的,第一次推送master分支时,加上-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,如下:
git push origin master

方式二:
  1. 创建远程仓库

  2. 把远程仓库clone到本地

     git clone git@mycode.skylettestudio.com:xlPay/XLPay.git
  3. 将本地工程copy到clone的文件夹中

  4. 进行添加和提交操作

     git add -A
    git commit -m"添加文件"
  5. 将工程push到远程

     git push origin master

Add操作

  • 添加单个改动文件,如:readme.txt

    git add readme.txt

  • 添加所有改变的文件,有如下几种区别:

    //表示添加所有内容

    git add -A

    //表示添加新文件和编辑过的文件不包括删除的文件

    git add .

    //表示添加编辑或者删除的文件,不包括新添加的文件

    git add -u

  • 添加同时提交内容

    git commit -am"添加并提交到仓库"


分支操作

  • 查看分支

      git branch
  • 创建分支

      git branch <name>
  • 切换分支

      git checkout <name>
  • 创建+切换分支

      git checkout -b <name>
  • 合并某分支到当前分支

      git merge <name>
  • 删除本地分支

      git branch -d <name>
  • 查看远程分支列表

      git branch -a
    
    绿色代表当前项目所在的分支,红色就是远程分支列表

  • 提交该分支到远程仓库(即:在远程创建dev分支,并提交内容):

      git push origin dev
  • 从远程获取dev分支内容:

      git pull origin dev

    或者通过用命令行,运行 git fetch,可以将远程分支信息获取到本地,

    再运行 git checkout -b local-branchname origin/remote_branchname

    就可以将远程分支映射到本地命名为local-branchname 的一分支

  • 删除远程分支

      git push origin --delete <branchName>
  • 重命名本地分支

      git branch -m <oldbranch> <newbranch>
  • 重命名远程分支

      先删除远程分支,然后重命名本地分支,再重新提交一个远程分支

版本回退

在Git中,用HEAD表示当前版本。上一个版本就是HEAD,上上一个版本就是HEAD。,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。

  • 查看提交日志(所有的提交日志,最近到最远)

      git log
  • 查看提交的内容(比如更改了哪些类,删除了哪些文件等)

      git log -p -1// -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新
  • 查看命令历史(即:我们每一个命令)

      git reflog
  • 通过git log 或者 git reflog可以拿到每个版本的commit_id,然后通过切换版本/回退版本的命令即可:

      git reset --hard commit_id
  • 回退版本操作:

      //git log 拿到commit_id
    git log
    //回到commit_id那个版本
    git reset --hard commit_id
  • 已经回退到了之前的版本,又想回到新版本

      //查看所有的命令,然后找到新版本提交的 commit_id
    git reflog
    //去到新版本
    git reset --hard commit_id
  • 让这个文件回到最近一次git commit或git add时的状态

      git checkout -- readme.txt

标签管理

  • 打一个新标签

      //默认标签是打在最新提交的commit上的
    git tag <name>
  • 查看所有标签(标签不是按时间顺序列出,而是按字母排序的)

      git tag
  • 查看某个标签信息

      //标签不是按时间顺序列出,而是按字母排序的
    git show <tagname>
  • 创建带有说明的标签,用-a指定标签名,-m指定说明文字

      git tag -a v0.1 -m "设置了标签啊" 3628164
  • 删除本地标签

      git tag -d v0.1
  • 推送一个本地标签到远程

      git push origin <tagname>
  • 推送全部未推送过的本地标签到远程

      git push origin --tags
  • 删除一个远程标签

      //先在本地进行删除
    git push origin :refs/tags/<tagname>
  • tag默认是打在最新的commit上的,如果想给已经commit过的内容添加标签如下:

      1. git reflog //找到历史版本的 commit id = 6224937
    2. git tag v1.0.0 6224937
  • 获取远程tag

      git fetch origin tag <tagname>

解决冲突

  • 合并冲突:

      //提交的文件如果出现冲突就会出现这种提示
    CONFLICT (content): Merge conflict in readme.txt Automatic merge failed; fix conflicts and then commit the result.

    1. 通过git status 查看冲突文件
    2. Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
    3. 修改文件,保存,再次提交即可
    4. 通过git log查看分支合并的情况

更新本地工程

  • 获取远端库最新信息

      git fetch origin
  • 作比较

      git diff master origin/master
  • 合并本地仓库代码

      git merge origin/master

公共操作

  • 把本地git仓库恢复为普通文件夹

    1. 删除这个目录里的隐藏文件夹.git
    2. rm -rf .git/
  • 测试Github和Gitlab是否添加了SSH

      ssh -T git@github.com
    ssh -T git@gitlab.com
  • 查看未传送到远程代码库的提交描述/说明(commit到了本地仓库,但是没有push到远程仓库的内容的提交说明)

      git cherry -v origin thcdev//后面要加push到的远程仓库名
  • 查看远程库信息

      git remote -v;
  • 清屏操作

      git reset
  • git log之后退出

      按 Q 即可
  • 找到历史提交的commit id

      git log --pretty=oneline --abbrev-commit
  • 和远程仓库建立联系

    1. 创建SSH Key

      • 在用户主目录(这里在windows下是指 c/user/Administrator/.ssh/id_rsa)下,看看有没有.ssh目录。

      • 如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。

      • 如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

          $ ssh-keygen -t rsa -C "youremail@example.com"
      • 需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。

      • 由于这个Key也不是用于军事目的,所以也无需设置密码。

      • (测试的结果:C:\Users\Administrator.ssh 里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa

        是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。)

    2. 登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。点“Add Key”,你就应该看到已经添加的Key:

      注意两点:

      • 为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

      • GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

    3. 测试SSH key是否添加成功

      输入如下命令进行测试

       ssh -T git@github.com

      如果出现:

      ssh_success.png

      说明添加成功了。


Git 命令行常用命令

  • 进入当前路径的dev

      cd dev
  • 返回上级目录

      cd ..
  • 返回上次目录

      cd
  • 查看当前目录

      pwd
  • 列出当前目录内容

      ls
  • 新建一个名为dev的目录

      mkdir dev
  • 强制删除,不管目录为不为空

      rm -rf dev

Vim常用命令

  • 关闭(Exiting)

      :w 保存
    :wq 保存并关闭 :x
    :q 关闭(已保存)
    :q! 强制关闭
  • 关闭插入模式

      ESC//点击之后就可以执行 vim命令操作

大佬命令集合


git问题收录

  • Unable to create 'E:/WorkSpace/xiaoluSDK-android/.git/index.lock': File exists.

    rm -f ./.git/index.lock

[搞一波](https://blog.zengrong.net/post/1746.html#)
  • 当操作git的时候,如果进入了很多命令.~ ... 等,需要按q退出

原文地址:https://www.jianshu.com/p/f92ed1ca8120

posted @
2019-07-08 23:07 
趣学程序 
阅读(...) 
评论(...) 
编辑 
收藏

Git常用命令--了解这些就够了的更多相关文章

  1. Git常用命令和Git团队使用规范指南

    转自:https://wsgzao.github.io/post/git/ 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品——Git.它的出现改变了 ...

  2. Git常用命令及方法

    https://blog.csdn.net/web_csdn_share/article/details/79243308 Git常用命令及方法大全 下面是我整理的常用 Git 命令清单.几个专用名词 ...

  3. Git 常用命令总结,掌握这些,轻松驾驭版本管理

    原创 最近公司的代码管理工具要从SVN转到Git上,因此虽然之前用过Git,但是都是一些简单的推送提交,因此还是有必要进行一些系统的学习,这里做一下笔记,以备后询,且不定期更新. 关于SVN和Git的 ...

  4. 10年阿里自动化测试架构师帮您收集的:git常用命令大全以及git原理图【泣血推荐,建议收藏】

    一.Git分布式版本控制简介 ​ Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势.本来想着只把最有用.最常用的 Git 命令记下来, ...

  5. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  6. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  7. Git 常用命令大全

    Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加 ...

  8. Git常用命令总结

    Git常用命令总结 git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone ...

  9. GIT常用命令备忘

    Git配置 git config --global user.name "storm" git config --global user.email "stormzhan ...

随机推荐

  1. StarWind Storage Appliance

    https://www.starwindsoftware.com/starwind-storage-appliance?gclid=CLzH8oGyptICFbIW0wodNuYG1Q

  2. 多玩YY语音的面试题:C++中如何在main()函数之前执行操作?

    多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始.但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的t ...

  3. 2015新款 MacBook 用心的测评与试用. 最轻薄的Mac上市

    2015新款 MacBook 不一样的测评与试用. 最轻薄的Mac上市了. 直击现场 <HTML开发MacOSApp教程>  http://pan.baidu.com/s/1jG1Q58M ...

  4. Qt 5 最小构建笔记(只编译QtBase)

    只想用Qt5最基本的功能,因此只编译QtBase.也不想为了编译一个Qt装很多东西(比如非常肥的DirectX SDK) 软件清单: Visual Studio 2010 Professional w ...

  5. c# 停靠窗体

    public partial class FrmAnchor : Form, IMessageFilter { public FrmAnchor(Control parentControlc, Con ...

  6. ThoughtWorks 面试备忘录

    ThoughtWorks 面试备忘录 前言 前段时间 ThoughtWorks 在网上和拉勾网合作搞了一次网络招聘,名为抛弃简历!让代码说话!,可谓赚足了眼球,很多程序猿纷纷摩拳擦掌.踊跃提交代码,在 ...

  7. 条款10:令operator= 返回一个reference to *this

    关于赋值,可以写成连锁形式: int x, y, z; x = y = z = 15; //赋值连锁形式 赋值采用右结合律,故上述赋值被解析为: x = (y = (z = 15)); 为了实现连锁赋 ...

  8. C语言实现常用排序算法——冒泡排序

    原理:比较临近的两个元素,只要不符合顺序就进行交换:要点:1.不要越界:2.遍历一遍以后最大的元素就会到最后,所以下次遍历就不用遍历整个数组 void bubble_sort(int a[],int ...

  9. shell多线程(2)之基于管道实现并发

    在shell脚本里批量执行程序是比较常见的方式,如果程序很多,每个执行时间比较长,则顺序执行需要花费大量的时间. 此时并发就成为我们考虑的方向. 上篇<shell多线程>中我们已经简单实现 ...

  10. Linux下python多版本多环境介绍

     一.python多版本配置说明 安装python相关依赖 [root@centos6 ~]# yum install -y gcc make patch gdbm-devel openssl-dev ...