GIT常用命令

GIT常用命令(小结)

  • 谈及源码管理工具,首选SVNGIT,在工作中也都有所接触,但个人更喜欢使用GIT,下面就是我记录的在工作中用到的操作命令。

操作流程图

GIT常用命令_第1张图片
Git操作流程图.png

一、全局配置


  1. 告诉git你是谁(设置 | 修改 用户名)

    git config --global user.name "username"

  2. 告诉git怎么联系你(如果注册了 github 账号,邮箱最好和 github 账号统一)(设置 | 修改 邮箱)

    git config --global user.email "[email protected]"

  3. 查看用户名和邮箱

    git config user.name

    git config user.email

二、初始化本地代码仓库


  1. 初始化代码仓库

    git init

    进入新的公司,一般都需要从公司的远程代码托管仓库中clone出一份代码

  2. 从服务器分支中创建本地分支

    a. 加入我在本地新建了一个分支

    git checkout origin/originBranchName -b localBranchName

    b. 我在这个分支上新建了一些文件,要把这个分支推送到自己的远程分支服务器上

    git push origin localBranchName

  3. 从服务器克隆代码(有子模块,需要递归recursive)

    git clone --recursive [email protected]:xxx/xxxxxx.git

三、修改&提交


  1. 添加修改的文件

    git add MainView.h (添加某个文件)

    git add . (添加所有已经修改的文件)

  2. 提交修改

    git commit -m "注释"

    git commit -a -m "注释"

    git commit -am "注释"

  3. 从远程分支中拉最新代码

    git pull origin originBranchName

  4. 将本地分支代码提交到自己的远程分支中

    git push origin localBranchName

  5. 切换到服务器远程分支上

    git checkout originBranchName

  6. 合并分支(远程分支&本地分支做个合并)

    git merge localBranchName

  7. 把最新修改同步到服务器的远程分支上

    git push origin localBranchName

  8. 切换到自己的本地分支,完成一次修改提交操作

    git checkout localBranchName

备注: 修改&提交时,Untracked files(未监视的文件)的处理

有时候会出现Untracked files,我们又不想add到仓库,但是使用git checkout .git reset 都没法删除这些未监视的文件,如下图:

GIT常用命令_第2张图片
git-untracked files.png
  • 解决办法:
    • 删除文件:git clean -f
    • 删除目录: git clean -fd
  • Tips
    • 删除前,建议加上-n参数,先看看会对哪些文件产生影响,避免误操作!比如:git clean -nfgit clean -nfd

四、版本回撤


  1. 回撤到上一个版本

    git reset --hard HEAD^

  2. 回撤到上上一个版本

    git reset --hard HEAD^^

  3. 切换到任意版本

    git reset --hard 版本号(前6位)

  4. 撤销某一个文件当前的修改

    git checkout 文件名

  5. 撤销当前所有修改

    git checkout .

  6. 查看分支引用记录,能够查阅所有的版本号

    git reflog

  7. 从分支的某个提交记录签出新的分支

    • git checkout 版本号(前6位)
    • git branch 新的分支名【产生新的分支】

五、查看文件修改记录


  1. 查看当前分支

    git branch

  2. 查询某人的提交记录

    git log --author="姓名"

  3. 查看文件修改记录(历史) 文件追踪,再也不怕未知的修改了,呵呵

    git blame VideoSquare/HotViewController.mm

  4. 查看文件修改内容

    git difftool VideoSquare/HotViewController.mm 新窗口弹出

    git diff VideoSquare/HotViewController.mm 原始窗口显示

六、分支操作


  1. 查看当前分支

    git branch

  2. 查看远程分支

    git branch -r

  3. 创建本地分支(注意不会自动切换分支

    git branch [name]

  4. 切换分支

    git checkout [name]

  5. 创建新分支并立即切换到新分支

    git checkout -b [name]

  6. 删除分支

    a. 只能删除已经合并过的分支
    b. 没有合并的分支不能删除
    c. 如果要强行删除分支,可以使用 -D 选项
    

    git branch -d [name]
    git push origin --delete 删除远程分支

6.1 删除本地的无效远程分支
git remote prune origin

    // 输出日志如下:
    Pruning origin
    URL: [email protected]:app-labs/app-background-center.git
    * [pruned] origin/develop_new
  1. 合并分支

    git merge [name]

  2. 创建远程分支(本质上是将本地的分支 push 到远程

    git push origin [name]

七、远程操作


  1. 查看当前分支

    git clone url

  2. 将本地修改内容推送到远程代码仓库

    git push

  3. 将远程代码库的变化更新到本地

    git pull

八、标签

  1. 创建标签

    git tag 标签名称

    git tag -a 标签名称 -m 附注

  2. 在指定commit上打标签

    git tag -a 标签名称 commitCode -m 附注

  3. 查看标签列表

    git tag

  4. 查看标签信息

    git show 标签名称

  5. 删除标签

    git tag -d 标签名称

  6. 推送标签到远程

    git push origin 标签名称

    git push origin --tags

    推送到远程的标签,如果想要删除远程标签,就得先删除本地(git tag -d 分支名称),再删除远程标签(git push origin :refs/tags/标签名称)
    

九、其它


  1. 删除文件

    git rm -r 文件名称

  2. .gitignore规则不生效的解决办法

     # 手动修改gitignore文件,添加新的忽略规则失效的原因是,.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
     git rm -r --cached .
     git add .
     git commit -m 'update .gitignore'
    

十、高级用法


Git - 子模块

十一、附件


  • 好用的终端+常用命令,会达到事半功倍的效果,点击快速配置Mac的终端

你可能感兴趣的:(GIT常用命令)