Git经常使用命令--了解这些就够了

将本地工程push到远程

方式一:html

  1. 创建本地仓库android

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

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

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

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

git push -u origin master

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

    git push origin master

方式二:ssh

  1. 建立远程仓库gitlab

  2. 把远程仓库clone到本地post

    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退出

做者:CoderThc 连接:https://www.jianshu.com/p/f92ed1ca8120 來源:简书 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

相关文章
相关标签/搜索