git 使用指南

git 基本架构:

git 的本地仓库是它与其它代码托管工具相比的主要特征。

Index

Git维护代码分为三部分

  当前工作目录 <->index file <->本地 git仓库

  ls -a

  cd .git

  

基本使用:

1.安装git yum install git

2.在 github上创建项目

3.Linux中创建pub key (ssh-keygen),把公共密钥导入github。(.ssh/id_rsa.pub内容粘贴到github下的 Settings => SSH and GPG keys => New SSH key)

4.克隆项目 git clone git@***

5.比如我进入目录后新建文件touch README.md

  git add README.md

  git commit -m "add README"

  git push -u origin master  #(origin :地址 库别名; master : 分枝)

  好了,这时候再去到github上这个project就会看到多了README.md

6.也可以提交文件夹,但是git不能提交空文件夹,里面必须需要有东西

  也是一样的操作,这里注意如果git commit  的时候没有加参数的话,就会跳出vi窗口输入。

  git add . #当前目录下所有更新的文件目录都add

  也可以指定文件夹名 git add tesrDir

7.git status #显示uncheck的文件目录

8.git config

  git config --global user.name "***"      #配置提交代码的时候显示的名称

  git config --global user.email "***"      #配置提交代码的时候显示的邮箱

  git config --global color.ui true      #配置查看改变(git diff 工作目录和Index的差别)时候界面显示的友好度

  git config --global alias.co checkout    #配置命令别名,其它的类似

  git remote add origin git@host:project.git  #添加远程版本库origin

  git config #体现在 cat ~/.gitconfig

  git config -l #列出所有config

其它命令和解释:

  git show # 显示最近一次改变

  git log #修改日志 本地仓库

  git add .  #将所有修改提交到Index

  git add <file> # 将文件修改提交到Index

  git commit <file> # 将修改提交到本地仓库

  git commit #将所有add提交到本地库

  git commit -a # 将git add(或git rm)和git commit等操作都合并在一起做

  git commit -am "some comments" 

  git reset --mixed # 默认参数,恢复index中的修改,已经add但还未commit的修改可以用它reset

  git reset --soft HEAD~1 # 恢复commit中修改,index中保留

  git reset --hard <version> # 将本地文件空间恢复为指定的版本,同时修改所有的index及本地库

  git reset (--soft | --mixed | --hard) <version> <file> 

  git revert <version> # 撤销某次提交,撤销动作本身也创建了一次提交对象 git revert HEAD # 撤销最后一次提交 

  git rm readme.txt #从版本库中删除文件,但不删除文件

  git rm -cached readme.txt #重命名文件
  git mv reademe.txt readme 

  

  git diff <file> # 比较当前文件和index文件差异 git diff
  git diff <V1> <V2> # 比较两次提交之间的差异

  git diff --cached # 比较index与本地库差异

  git diff HEAD #比较工作版本与HEAD(本地库)的差异 

  

  git log
  git log <file>    # 查看该文件每次提交记录

  git log -p <file>  # 查看每次详细修改内容的diff

  git log -p -2  # 查看最近两次详细修改内容的diff 

分枝 branch

  git branch -r # 查看远程分支

  git branch -a # 查看所有分支
  git branch <new_branch> # 创建新的分支
  git branch -v # 查看各个分支最后提交信息

  git checkout <branch> # 切换到某个分支
  git checkout -b <new_branch> # 创建新的分支,并且切换过去
  git checkout -b <new_branch> <branch> # 基于branch创建新的new_branch

  git checkout <version> # 把某次历史提交记录checkout出来,但无分支信息,切换 到其他分支会自动删除

  git checkout <version> -b <new_branch> # 把某次历史提交记录checkout出来,创建成一 个分支

  git branch -d <branch> # 本地删除某个分支 

  git push origin :new # 远端删除

Merge and Rebase

  git merge # 将branch分支合并到当前分支 

  git rebase master # 将master rebase到branch,没有branch时为当前branch  以master分支为主,

             有冲突会提示错误,进入文件修改后 git add 然后 git rebase --continue

   

  git pull # 获取远程仓库所有分支更新并合并到本地

  git pull <remote_name> <branch_name> #获取指定仓库指定分支的代码

   git fetch origin # 抓取远程仓库更新

  git fetch origin master:tmp

  git diff tmp git merge tmp

  

  

  

    

原文地址:https://www.cnblogs.com/futurehau/p/6443706.html