zoukankan      html  css  js  c++  java
  • Git常用操作

    catalogue:

    1. 初始化git仓库:第一次使用git
    2. 把文件放到git本地仓库
    3. 修改文件,再提交
    4. 查看历史版本
    5. 版本回退
    6. git与其他版本库区别
    7. 撤回
    8. 删除
    9. 远程资源库
    10. 关联远程git仓库,向远程推送
    11. 分支
    12. 查看远程仓库:添加、查看、该名、删除
    13. 提交代码
    14. 开发环境git库切换到测试环境git库
    15. merge冲突
    16. rebase冲突
    17. 合并开发分支到主分支
    18. 在开发分支开发时,主分支代码修改
    19. 从master分支拉新分支开发
    20. git免密操作
    21. 查看远程仓库提交历史
    22. 查看差异

    content:

    1.初始化git仓库:第一次使用git

    git config --global user.name "用户名"
    git config --global user.email "admin@admin.com"
    git init

    2.把文件放到git本地仓库:

    git add xxx#
    git commit -m "comments"

    3.修改文件,再提交

    git status#查看仓库状态
    git diff xxx#查看文件xxx的差异
    git add xxx
    git status#查看仓库状态
    git commit -m "comments"
    git status#查看仓库状态

    4.查看历史版本

    git log#显示从最近到最远的提交日志
    git log --pretty=oneline
    Git log --oneline -p filename --查看差异内容

    5.版本回退

    首先查看当前版本,HEAD表示当前版本,上一个版本HEAD^,上上个版本HEAD^^,上100个版本HEAD~100

    回退到上一个版本:git reset--hard HEAD^
    查看回退文件的内容:cat xxx
    查看版本库状态:git log

    回滚后,上一个当前版本就消失了,如果要回滚,在旧的命令行窗口没有关闭的情况下,找到commit id:git reset --hard ID#版本号不必写全
    如果命令行关闭了,使用reflog找到commit id:git reflog#记录用户的每一次命令
    再使用:git reset --hard commit-id
    git log

    6.git与其他版本库区别

    工作区:
    暂存区:
    版本库:

    7.撤回

    工作区撤回:git checkout -- filename#让文件xxx回到最近一次commit或者add时的状态;没有--命令变为切换分支;(--后有一个空格)
    暂存区撤回:1. git reset HEAD xxx#把暂存区的修改撤销,放回工作区;
    2. git checkout – xxx#让文件xxx回到最近一次commit或者add时的状态;
    本地版本库撤回:git reset --hard HEAD^
    取消文件跟踪(回到add之前的状态):git rm --cached filename

    8.删除

    git rm filename
    git commit -m “comments”
    如果是误删:git checkout -- filename

    9.远程资源库

    1.创建SSH Key:ssh-keygen -t -rsa -C
    2.登陆github,添加

    10.关联远程git仓库,向远程推送

    远程创建空仓库test,把本地仓库推到远程的空仓库test1:
    1.git remote add origin git@github.com:2******1@qq.com/test.git
    git remote add origin git@server-name:path/repo-name.git
    2.git push -u origin master#-u代表本地仓库推送到远程仓库,关联本地master与远程master;第一次向远程推送才加-u;
    git push -u origin master
    git push origin master
    在本地下载远程仓库代码:
    1.git clone git@github.com:243304561@qq.com/test.git

    11.分支

    1.创建分支并切换:git checkout -b xxx
    等价于:1. git branch xxx 2. git checkout xxx
    2.查看分支:git branch
    3.修改分支名:git branch -m old new
    4.切回主分支:git checkout master
    5.合并分支xxx与主线:git merge xxx
    6.删除分支:git branch -d xxx
    如果git merge xxx有冲突(分支主线都有修改),需要手工把冲突文件修改正确,
    再:1. git add xxx; 2. git commit -m “comments” 3. git push origin master

    禁用快进模式并提交备注信息:git merge –no-ff -m “comments” xxx

    查看分支合并情况:git log –graph –pretty=oneline –abbrev-commit

    12.查看远程仓库:添加、查看、该名、删除

    (1)添加远程仓库git remote add [远程库的简短名字,如:test] git://xxx
    (2)git remote -v查看远程仓库克隆地址
    (3)git remote查看远程仓库
    (4)查看远程仓库信息:git remote show [仓库简短名]
    (5)远程仓库重命名:git remote rename old new
    (6)移除远程仓库:git remote rm [仓库简短名]

    13.提交代码

    修改代码后:1. git add . 2. git commit -m ‘comments’
    抓取远程仓库有,本地仓库没有的:git fetch 仓库名
    如果抓取到内容需要合并:git rebase origin test
    推送数据到远程仓库:git push [remote-name] [branch-name]

    14.开发环境git库切换到测试环境git库

    git remote add mystore git@127.0.0.1:/home/git/git-repo/abc.git
    git fetch mystore
    #在本地创建一个feature-new分支用于跟踪远端的feature-new分支并切换到本地feature-new分支
    git checkout --track mystore/feature-new
    如果本地有修改,导致上条命令失败,则先暂存修改:$ git stash
    git checkout --track mystore/feature-new
    弹出暂存修改:
    Git stash pop
    Git add .
    Git commit -m ‘commets’
    获取远程库,检测是否有变更:
    Git fetch mystore
    有新变更则合并:
    Git rebase mystore feature-new
    推送到远程仓库:
    Git push mystore feature-new

    15.merge冲突

    原因:
    用 diff 工具生成 patch 时,我们所做的每一处修改都会连同它的“定位信息”(原始文件中的行号、修改处前三行和后三行的原始文本)
    一并保存到 patch 文件中。patch 被应用时,会在目标文件中寻找“定位信息”,找到后再实施修改。可是,当我们把补丁应用时,
    有可能找不到那些定位信息了,于是应用patch失败,即发生冲突。

    在主分支:git merge 分支 #冲突
    打开修改冲突文件:1. git add . 2. git commit -m ‘comments’
    查看log:git log --graph --pretty=oneline --abbrev-commit
    删除分支:git branch -d 分支

    16.rebase冲突

    解决冲突文件后:git add .
    然后后执行:git rebase –continue继续操作
    或者git rebase –skip忽略冲突。

    17.合并开发分支到主分支

    git checkout dev
    git pull 仓库名 dev
    git checkout master
    git pull 仓库名 master
    git merge dev
    git push 仓库名 master

    18.在开发分支开发时,主分支代码修改

    git checkout master
    git pull 仓库名 master
    git checkout dev
    git merge master
    git push origin dev

    19.从master分支拉新分支开发

    git checkout master
    git pull 仓库名 master
    git checkout -b dev #从当前分支拉copy开发分支
    git push origin dev #把新建的分支push到远端
    git pull仓库名 #拉取远端分支
    git branch --set-upstream-to=origin/dev #关联

    git pull 仓库名#再次拉取 验证

    20.git免密操作

    每次使用 git pull 或者 git push ,需要输入用户名和密码,工作效率低,以下命令可以实现永久免登陆:
    git config --global credential.helper store
    git pull /git push (这里需要输入用户名和密码,以后就不用啦)

    21.查看远程仓库提交历史:

    gitk --all

    22.查看差异

    查看两个分支的差异

    git log --oneline 分支1 ^分支2 :查看分支1有分支2没有

    Git log --oneline branch1..branch2 :查看branch2比branch1多提交哪些内容

    Git log --oneline branch1...branch2 :查看两个分支差异

    Git log --left-right branch1...branch2 :查看每次提交在哪个分支

    Commit后为右箭头,代表是master的提交

  • 相关阅读:
    Alpha冲刺(5/10)
    Alpha冲刺(4/10)
    团队现场编程
    关于合同标准形的专题讨论
    关于相似标准形的专题讨论
    关于数学分析的计算题I(积分)
    关于数学分析的证明题III(级数)
    关于数学分析的证明题II(微分)
    关于数学分析的证明题I(积分)
    关于反常积分收敛的专题讨论
  • 原文地址:https://www.cnblogs.com/chht/p/10925675.html
Copyright © 2011-2022 走看看