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

  • 相关阅读:
    【C#进阶系列】06 类型和成员基础
    纪中5日T1 1564. 旅游
    纪中17日T1 2321. 方程
    纪中17日T2 2322. capacitor
    纪中10日T1 2313. 动态仙人掌
    纪中14日听课小结 图论 最短路 二分图 差分约束
    一个抓猫的游戏 消遣GAME 持续更新中!
    洛谷P1464 Function  HDU P1579 Function Run Fun
    洛谷P1976 鸡蛋饼
    纪中12日T1 2307. 选择
  • 原文地址:https://www.cnblogs.com/jeffjoy/p/10523528.html
Copyright © 2011-2022 走看看