zoukankan      html  css  js  c++  java
  • Git学习攻略


    Linux 常用命令:
    1.cd pwd su   2.ls; ls-l; ll  3.mkdir   4.touch 
    5.cat       6.grep   7.history   8.clear
    9. 文件写入 >   10.rm   11.cp mv  12.alias

    Git安装配置:
    git config --global user.name "..."
    git config --global user.email "..."

    TortoiseGit 图形化Git管理工具

    Git常用命令:
    HEAD 当前版本库的头指针
    HEAD^ 版本库的上一次提交
    ~n 前n次提交
    暂存区stage
    工作区
    1.git init 初始化仓库
    2.git clone 克隆仓库代码
    git pull 更新代码
    git fetch; git merge
    3.git branch
    1)git branch name 创建分支
    2) git branch -m oldName newName 本地分支重命名(未推送至远程)
    3) git branch -v 查看当前分支
    4) git branch 查看所有分支
    5) git branch -d 删除本地分支 -D 强制删除
    6)git branch -f 强制修改分支位置,让分支指向另一个提交
    7) git push origin --delete newName 删除远程分支
    4.git checkout 检出分支 默认是暂存区
    1)git checkout -b 创建并切换分支
    2)git checkout branch 切换分支,更新HEAD指向branch,并用branch指向的树更新暂存区和工作区
    3)git checkout 汇总显示工作区、暂存区和HEAD的区别
    4)git checkout -- filename 用暂存区的filename文件覆盖工作区的文件。(相当于重置)
    5)git checkout branch -- filename 用branch所指向的提交中的filename 替换工作区和缓存区的相应文件。
    origin/develop 服务器develop分支
    6)git checkout . 暂存区文件覆盖本地所有文件
    7)git checkout HEAD . 或git checkout HEAD <file> 用HEAD指向的master分支中的全部或部分文件替换暂存区和工作区中的文件
    5.git add
    1) git add -u 将本地文件的变更(修改、删除)全部记录到暂存区
    2)git add -a 将工作区中所有改动和新增文件添加至暂存区
    3) git add -i 选择性的添加文件
    4) git add . 添加所有变更的文件至暂存区
    6.git commit
    1) git commit -m "..." 提交代码并注释
    2)git commit --amend 撤销最近提交
    7.git status 暂存区和工作区改变
    1)git status -s 精简输出
    8.git diff 代码比对
    1).git diff 工作区和暂存区比较
    2).git diff HEAD 工作区和HEAD比较 HEAD是远程分支
    3).git diff --cached 暂存区和HEAD比较
    4).git diff B A
    9.git log 代码提交历史
    1)git log --online
    2)git log -n(数字) --pretty=oneline 最近提交的几条记录
    3)git log --graph 查看分支合并图
    4) git log --stat 查看每次提交的文件变更统计
    git reflog
    1) git reflog show branch1 查看branch1提交记录
    10.git reset 重置命令
    1). git reset --hard HEAD^ 彻底撤销最近的提交。引用,工作区,暂存区都回退。自己当前版本写的代码丢失。
      git reset --hard 版本号 回退值某个版本
    2). git reset 和 git reset HEAD
    重置暂存区,将git add命令撤销
    3). git reset --filname 和 git reset HEAD filename 将文件filename改动撤出暂存区,撤销git add
    4). git reset HEAD^ 和 git reset --mixed HEAD^ 工作区不改变,暂存区和引用回退。(未提交的代码不受影响)
    5).git reset --soft HEAD^ 工作区和暂存区不改变,引用回退。相当于撤销git commit
    11.git mv oldFileName newFileName 文件改名
    12.git stash 保存和恢复工作进度
    1)git stash 保存当前工作进度。分别对暂存区和工作区的状态进行保存
    save "message...." 保存进度并进行说明
    2)git stash list 显示进度列表。
    3)git stash pop 恢复最新保存的工作进度,并将恢复的工作进度从储存的工作进度列表中清除
    4)git stash [save [--patch] [-k|--[no-] keep-index] [-q|--quiet] [<message>]]
    --patch 显示工作区和HEAD的差别
    -k或--keep-index 保存进度后不会将暂存区重置
    5)git stash apply 和stash pop一样,但是不删除恢复的进度
    6)git stash drop [<stash>] 删除一个存储的进度。默认删除最新的进度。
    7) git stash clear 删除所有储存的进度
    13.git push origin yourbranch 上传你的分支至仓库
    1)git push -f 强制推送
    2) git push origin --delete newName 删除远程分支

    14.git pull 更新代码
    1) git pull origin branch 从branch上更新到当前分支
    从branch上更新的别人的新代码自动放到暂存区中,更改完自己的代码,git add,然后git commit会把更新的夜一起提交上去。
    15.git fetch origin 从远程分支拉取代码
    git fetch origin branch1:branch2 拉取远程branch1代码 到 本地branch2
    git diff temp git merge branch2 git branch -d branch2
    16.git merge
    1)git merge master 合并master分支至当前分支
    2)git merge --no-ff dev --no-ff 分之合并之后,从分支历史上就可以看出分支信息

    git rebase develop 移动分支,把当前分支移动到develop分支之后合并
    有冲突则解决冲突,然后git rebase --continue
    git rebase --abort 终止rebase行动,回到rebase之前的状态。
    17.git remote and origin url 关联远程仓库
    git remote -v
    18.git rev-parse 版本表示法
    1)git rev-parse --symbolic --branchs 显示分支
    2)git rev-parse --symbolic --tags 显示里程碑
    3) 显示为对于哈希值 git rev-parse HEAD
    19. git tag
    1)git describe 版本号
    2)git tag 查看所有标签
          -n 查看标签说明
    3)git tag <tagname> 创建标签
              -a带说明
              -m "msg" 带说明
    4)git show <tagname> 查看标签信息
    5)git tag -d <tagname> 删除标签
    6)git push origin <tagname> 本地标签推送至远程
    7) git push origin --tags可以推送全部未推送过的本地标签
    8) git push origin :refs/tags/<tagname>可以删除一个远程标签
    20.git config --global alias.name "git commit -s" 命令别名
    例如:name = ci ;git ci = git commit -s

    常见问题:

    1.更新代码有冲突:
    1)、git stash ;git pull; git stash pop
    2) 、git add ;git commit;git pull
    3) 、git fetch ;git rebase o/master;git push ; rebase 当前分支移动到o/master分支,最后再用 git push 推送到远程仓库。
    4)、git fetch;git merge o/master;git push 合并之后多一个分支
    5) 、git pull --rebase;git push 没合并,直接移动,少一个分支

    更新命令之后:
    1.某个文件乱了,想修改这个文件。
    1)、只改变工作区 git checkout --file 暂存区文件覆盖工作区文件
    2)、同时改变暂存区 1>. git reset HEAD file;git checkout --file 先重置暂存区,再覆盖工作区文件
    2>. git checkout origin/develop --file 用服务端develop分支文件覆盖本地的文件

    此时文件更改为修改前的,然后你把最新的代码合并进来。

    2.用工具解决冲突:tortoisegit,source tree

  • 相关阅读:
    LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式
    第 15 篇:接口的单元测试
    【译】GitHub 为什么挂?官方的可行性报告为你解答
    微服务常用的几种部署方式——蓝绿部署,滚动升级,灰度发布/金丝雀发布
    .net生成PDF文件的几种方式
    读取私有字体信息并进行相关判断
    Windows Locale Codes
    总结C#获取当前路径的7种方法
    Devexpress aspxgridview oncustomcallback 无刷新更新数据
    ArcGIS Pro 版本、版本号、发布年代
  • 原文地址:https://www.cnblogs.com/jeffjoy/p/10523528.html
Copyright © 2011-2022 走看看