Git命令行

来源:互联网 发布:网络攻防交流平台 编辑:程序博客网 时间:2024/06/04 19:10

##初始化
- 添加SSH key
ssh-keygen -t rsa -C “your email”

- 查看当前config信息
git config –list
- 配置当前项目config信息
git config –local user.name “username”
git config –local user.email “email”

- 初始化项目:git init
- 关联远端仓库: git remote add origin 地址
- 修改远端仓库地址:git remote set-url origin 新地址
- 取消关联远程仓库:git remote remove origin


拉取代码

  • 第一次拉取代码: git pull origin master
  • clone远端分支:
    • git clone -b branch_name remote_repo
      例如:
      git clone -b branch_basic https://github.com/baiiu/ZhihuDaily.git
    • git clone remote_repo -b branch
      例如:
      git clone https://github.com/baiiu/ZhihuDaily.git -b branch_basic
  • clone到指定目录中
    git clone remote_repo file_dir


分支

  • 开启分支:git checkout -b feature_one branch

  • 合并分支到develop:
    git checkout develop
    git merge - -no-ff feature_one -m “description”(为了保证版本演进的清晰,我们希望采用这种做法)

  • 推送分支到远端:git push origin branch_name

  • 拉取远端分支:git checkout - -track origin/branch_name

  • 关联远程分支:git branch –set-upstream branch_name origin/branch-name

  • 取消和远端关联 :git remote rm origin

  • 删除分支:git branch -d branch_name
                      git branch -D branch_name

  • 删除远端分支:
    git push origin –delete branch_name

  • 从Tag上拆出分支:
    git checkout -b branch_name tag_name

  • 查看分支间的不同
    覆盖 git diff [branchA] [branchB] > a.txt
    追加 git diff [branchA] [branchB] >> a.txt


修改和回滚

  • 撤销工作区修改 git checkout – fileName 丢弃工作区内某一文件的修改
    git checkout – . 丢弃工作区内所有的修改

  • 撤销已添加到stage暂存区修改
    git reset HAED fileName

  • 重命名文件
    git mv old_file new_file,重命名只能文件,不能是目录

  • 撤销已提交的修改,未推送到远端
    git reset - -hard HEAD^
    git reset - -hard HEAD commitId

  • 重置指针位置:
    git reset - -hard HEAD~
    git reset - -hard HEAD commitId,git reflog 查看命令史,可以找到commitId

  • 远端回滚,简单粗暴:
    git reset –hard HEAD^
    git push origin master -f


删除

  • 删除本地文件:git rm xxx
  • 删除远端文件:git remote romve xxx
  • 删除远端分支:git branch -r -d origin/branchName
  • 删除远端 .idea文件: git rm -fr .idea
  • 删除build文件:git rm -fr */build/\*


Tag

  • 显示所有Tag: git tag
  • 打Tag : git tag -a v4.0 -m “xxxx”
  • 显示该Tag信息: git show v4.0
  • 推送该Tag:git push origin v4.0
  • 推送所有Tag: git push origin - - tags
  • 删除该Tag,并在远端也删除:
    git tag -d v4.0
    git push origin :refs/tags/v4.0
    或者:git push origin –delete tag tagName


推送代码:

  • 第一次推送到远端仓库:git push -u origin master
  • 第一次推送到dev分支:git push -u origin dev
  • 再次推送到远端仓库主分支:git push origin master
  • 推送到dev分支: git push origin dev
  • 强制推送到远端某分支(有时候需要):git push -f origin branchName


查看分支状态

  • 查看当前分支对应远端分支:
    git remote show origin
    git config –list
    git branch -vv


stash命令

  • git stash 暂存当前修改到暂存区
  • git stash apply 取出暂存区中修改
  • git stash drop 删除暂存区最新一条记录
  • git stash pop 取出并删除该记录
  • git stash clear 清空所有暂存区的记录
  • git stash list 列出所有暂存区记录


合并当前分支commit

git rebase
解决冲突
git add .
git rebase –continue

产生于当前commit后发现远端同样有commit,此时使用git pull拉取commit后本地会有两个commit,如果push该两个会产生垃圾commit,使用git rebase合并这两个commit,如果有冲突需要解决,解决后使用git add,再使用git rebase –continue完成合并。参考链接


合并分支:

git merge - -no-ff feature_one -m “xxx”

osx上会遇到:
Please enter a commit message to explain why this merge is necessary,especially if it merges an updated upstream into a topic branch.要求填写日志,解决方法 如下:

  1. press “i”
  2. write your merge message
  3. press “esc”
  4. write “:wq”
  5. then press enter
<<<<<<< HEAD //代表是当前所在分支的代码    public boolean isRead = false;=======    private int randomColor;    public int priority;>>>>>>> dev



参考:
廖雪峰Git教程
阮一峰 分支管理策略
Git Book

git命令速查表

0 0
原创粉丝点击