zoukankan      html  css  js  c++  java
  • Git常用命令

    Git常用命令

    • 前阵子在字节跳动广告创意中心实习的时候,发现自己对Git不是很精通。因此写下这篇博客,作为一份备忘录,记录本人经常使用的Git命令操作。

    • git config

      • git config --global user.name "xx"
      • git config --global user.email "xxx@example.com"
      • git config -l 查看配置信息
    • git branch

      • git branch 查看所有本地分支
      • git branch -r 查看所有远程分支
      • git branch -a 查看本地分支+远程分支
      • git branch xx 创建新分支
      • git branch -d xx  删除分支
      • git branch -v 查看各个分支最后一个提交信息
      • git branch --track dev origin/dev是创建一个新分支,并关联,若本地已存在,则会报本地分支已存在的错误
      • git branch --set-upstream-to=origin/dev dev 如果本地分支已存在,那使用--set-upstream-to来代替
      • git branch -u origin/xxx 设置当前分支跟踪远程分支origin/xxx
      • git branch -vv 查看本地分支和远程分支的跟踪关系
    • git remote

      • git 添加新的远程仓库,删除掉现在的
      • git remote -v 列出远程仓库的详细信息
      • git remote rm origin 删除远程仓库
      • git remote add origin(可修改) git@github.com:xxx/xxx.git 将本地仓库与远程仓库建立连接
      • git remote set-head origin branch_name 切换HEAD分支
    • git checkout

      • git checkout xx 切换分支
      • git checkout -b dev(本地分支名) origin/dev(远程分支名)达到关联效果
      • git checkout --
        • 放弃工作区修改,从版本库中拉取还原。
    • git push

      • git push <远程主机名> <本地分支名> :<远程分支名> 将本地版本库的分支推送到远程服务器上对应的分支
      • git push origin master:refs/for/master 将本地的master分支推送到远程主机origin上的对应master分支
      • git push origin master 远程分支被省略,则表示将本地分支推送到与之存在追踪关系的远程分支(如果未关联,则是同名分支)
      • git push --force origin master 一般使用git push的时候,本地需要先与远端保持一致,使用--force可以强制推送(我一般用于 git commit --amend 之后)
    • git pull

      • 尽量用git fetch 和 git merge 代替git pull
      • git pull origin master 等价于
        • git fetch origin master
        • git merge origin/master
    • git fetch

      • 相当于远程获取最新版本到本地,不自动merge

      • git fetch origin branch_name

        • 该操作不会在本地创建新的branch。设定当前分支的FETCH_HEAD' 为远程服务器的branch_name分支。
      • git fetch origin branch1:branch2

        • 使用远程branch1分支在本地创建branch2(但不会切换到该分支),如果本地不存在branch2分支, 则会自动创建一个新的branch2分支,
        • 如果本地存在branch2分支, 并且是`fast forward', 则自动合并两个分支
      • 利用git fetch拉取远端数据的方法

        • 方法一
          • git fetch origin master 从远程的origin仓库的master分支下载代码到本地的origin/master
          • git merge origin/master 把远程下载下来的代码合并到当前本地仓库
        • 方法二
          • git fetch origin master:temp 从远程的origin仓库的master分支下载到本地分支temp
          • git merge temp 合并temp分支到当前分支 (之后git push)
      • 本地代码误删

        • git fetch --all && git reset --hard origin/master && git pull
    • git stash (把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。)

      • git stash 等价于 git stash save
      • git stash save message, message是文字说明
      • git stash list,显示保存的工作进度列表,编号越小代表保存进度的时间越近
      • git stash pop stash@{num}, 恢复工作进度到工作区
      • git stash apply stash@{num}, 恢复工作进度到工作区且该工作进度可重复恢复
      • git stash drop stash@{num},删除一条保存的工作进度
      • git stash clear, 删除所有保存的工作进度
      • 如果想git stash 部分文件:
        • git stash -p,交互式命令,决定每个文件的操作方式
        • git stash push or git stash push -m message ,执行该操作前应该已经add过
        • git stash --keep-index -> git reset
    • 注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

    • 工作时,push的代码不完善需要重新commit,但又不希望产生多次提交,污染日志,采用如下方法:

      • git add xx
      • git commit --amend --no-edit
      • git push --force xxx
    • git log --pretty=oneline 只会显示版本号和提交时的备注信息(或 git log --oneline)

    • git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

      • 例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,便于恢复到被删除的那个版本。
    • git rm --cached 撤销add操作

    • git reset HEAD . 撤销add操作

    • 撤销commit操作:

      • git reset --soft HEAD~1
    • 当本地代码与远程仓库发生冲突:

      • 希望本地代码覆盖远程仓库
        • 利用git stash保存本地 -> git pull 覆盖 -> git stash pop 再覆盖
        • 或者笨方法,本地重命名保存
      • 希望远程仓库覆盖本地代码
        • git checkout file,放弃工作区的修改
    • 其余常用命令,有时间再总结

      • git diff
      • git rebase
      • git reset 用于回退版本
      • git revert 用于“反做”某一版本,以撤销该版本,会生成一个新的版本
      • git log
    • 解决Github 每次上传都要输入用户名和密码

    • 如何写.gitignore

    • 如何合并远程分支

    • git全方位解读

    • git常用命令解读

  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/szxspark/p/11828235.html
Copyright © 2011-2022 走看看