Git 基础命令操作指引

1.Git 初始化

  • Create a new repository
    git clone git@*******/test.git
    cd test
    touch README.md
    git add README.md
    git commit -m "add README"
    git push -u origin master
  • Existing folder or Git repository
    cd existing_folder
    git init
    git remote add origin git@@*******/test.git
    git add .
    git commit

2.Git Config

  • config 配置文件位置
All User : /etc/gitconfig
Current User : ~/.gitconfig
  • config 查看
git config --list
  • config 设置
git config --global user.name "xxx"
git config --global user.email "xxxx@163.com"

3.Git 基础命令

  • git status

    查看git仓库文件状态, git文件状态如下所示。

    unstaged - git仓库中没有此文件的相关记录 
    modified - git仓库中有这个文件的记录,且此文件当前有改动 
    staged - 变更的文件被暂存,没有提交到仓库 (git add命令之后)
    commited - 文件被提交到本地git仓库 (git commit之后)
  • git log

    查看历史commit记录

  • git add

  git add file/fileDir         #modified或unstaged的文件转换为staged状态
  git add -A/--all             #modified或unstaged的所有文件转换为staged状态
  • git rm
  git rm test.java             #从git仓库删除test.java文件,同时删除本地文件
  git rm  --cache test.java    #从git仓库删除test.java文件,不删除本地文件
  • git commit
  git commit -m "xxx comment"    #staged状态转换为commited状态
  • git diff
  git diff file-path           #查看自己本次要提交的文件有哪些改动
  • git pull
  git pull [remote-name branch-name]  #获取远程服务器数据,并同时与本地数据合并(可能会出现冲突)
  • git fetch
git fetch [remote-name]     #(获取仓库的所有更新,但是不自动合并当前分支)
git fetch -p                #(获取仓库的所有更新,且自动删除不需要的分支,更新最新的分支下来)
  • git push
  git push [remote-name branch-name]         #上传数据到远程分支,若出现冲突,则上传失败。
  git push --force [remote-name branch-name] #强制上传数据到远程分支**,(覆盖远程数据,慎用)**
  • git stash

    可用来暂存当前正在进行的工作,比commit简单,而且可以跨分支合并

    git stash                    #暂存更改的内容
    git stash save "comment"     #暂存更改的内容,带注释
    git stash list               #显示所有暂存的内容 

    git show stash@{0}           #显示指定stash的更改内容,类似于git diff 

    git stash apply stash@{1}    #应用指定编号的stash, 但不从stash-list中清除
    git stash pop                #应用栈顶的stash,并从stash-list清除该记录
    git stash clear              #清除stash-list

    git stash --help             #获取更多的信息

3.Git 分支

  • git branch
  git branch                  #查看本地分支列表
  git branch -r               #查看远程分支列表
  git branch -a               #查看所有分支
  git branch -d branch-name   #删除指定分支
  git branch -D branch-name   #强制删除指定分支
  • git checkout
  git checkout branch-name                         #切换到指定分支 (切换前记得先commit或者stash)
  git checkout -b new-branch-name                  #基于当前分支创建一个新分支
  git checkout -b branch-name origin/branch-name   #获取远程分支到本地 
  git checkout file-name                           #获取远程最新文件
  git checkout -- .                                #放弃本地所有的modify文件改动
  • add remote branch
  1.git checkout branch-name              #切换到要上传的分支
  2.git remote add origin branch-name     #添加远程分支
  3.git push origin branch-name            #推送数据到远程分支 (自动创建分支,step2可省去)  
  • delete remote branch
  git push origin :remote-branch         #删除指定远程分支

4.Git 分支合并

  • git merge
  1. git merge branch-name                 #合并指定分支内容到当前分支
  2. git add -A                            #手动解决冲突后,重新暂存
  2. git commit -m "xxx 解决冲突"           #再次提交
  • git cherry-pick
  1. git cherry-pick commit-id         #合并指定commit到当前分支
  2. git add -A                        #手动解决冲突后, 重新暂存
  3. git cherry-pick -- continue       #继续刚才的pick操作,这一步容易忘记
  4. git cherry-pick -- abort          #放弃cherry-pick操作

5.Git 修改与撤销

  • git reset
    git reset HEAD file          #将文件从staged转换为unstaged
    git reset HEAD .             #将所有文件从staged转换为unstaged
    git reset --mixed commit-id  #默认方式,回退到指定个版本,只保留源码,回退commit和index信息

    git reset --soft commit-id   #回退到某个版本,只回退了commit的信息,
                                 #不会恢复到index file级。如果还要提交,直接commit即可   

    git reset --hard commit-id   #彻底回退到某个版本,本地的源码也会变为上一个版本的内容
  • git reflog

    显示所有过去commit历史,可用来挽救–hard的误操作

  • git rebase
    (1) git rebase -i commit-id   #在vi编辑器中,显示commit-id到最新的所有commit记录
    (2) git rebase -i HEAD~10     #在vi编辑器中,显示最新10commit记录
    (3) 在vi编辑器中, 修改commit内容, wq保存
    (4) git add -A                #解决冲突后,暂存文件
    (5) git rebase --continue     #完成未完成rebase操作
    (6) git rebase --abort        #完成未完成rebase操作

在vim编辑器中,常见几种操作方式,显示如下,

    # 修改前
    pick 8e5da5f test-comment-1 
    pick 627a433 test-comment-2 
    pick 627a433 test-comment-3 
    pick dcc8310 test-comment-4 
    # commit-id更改
    pick 8e5da5f test-comment-1 
    pick 627a433 test-comment-2 
    r 627a433 修改后的内容 
    pick dcc8310 test-comment-4 
    # commit-id换序
    pick 8e5da5f test-comment-1 
    pick 627a433 test-comment-3 
    pick 627a433 test-comment-2 
    pick dcc8310 test-comment-4 
    # commit-id删除 
    pick 8e5da5f test-comment-1 
    pick 627a433 test-comment-2 
    pick dcc8310 test-comment-4 
    # commit-id 3 与 4合并
    pick 8e5da5f test-comment-1 
    pick 627a433 test-comment-2 
    pick 627a433 test-comment-3 
    s dcc8310 test-comment-4 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值