zoukankan      html  css  js  c++  java
  • Git常用操作

    一、git结构

    1. 中央仓库

    2. 本地仓库

    二、常用操作

    1. unchecked

    2. add,添加到暂存区

    3. commit, 从暂存区到本地仓库

    4. push,从本地仓库到远程仓库, commit和push的区别

    5. gc,打包清理

    git生成ssh keys不用每次都输入用户名,必须用ssh clone

    个人文件夹下有gitconfig

    git clone http:...

    git add . 添加当前目录下文件到git

    git add . --all 递归添加本目录下所有文件到git

    git commit -m "commnet"

    git pull 拉取所有分支,对应到相应分支

    git branch 显示本地所有的分支

    git branch -a 显示本地和远程所有branch

    git fetch 拉取所有的分支,只有这样才能显示所有的分支, 比如看不到远程新加的分支,就需要先fetch

    git rm --cache */*.iml 删除文件,但是保留本地文件

    git status

    git tag

    git checkout 2.5 切换到tag2.5,因为master分支总是会变化,不稳定

    回退代码 reset vs revert

    1. revert

    a. 已经commit但还未push

    git revert HEAD

    b. 已经push

    git revert HEAD~1

    2. reset

    git回退已经commit但是还未push的代码

    git reset HEAD^ 会退到上个本地版本

    git强制回滚已经push的代码, 加上hard

    git reset --hard HEAD^ 会退到上个本地版本,此时pull代码,远程分支会有冲入,需要merge,或者强制提交

    git reset --hard HEAD~3 会退到上3个版本

    git reset --hard 1153f149952a87f6aa8846a71f191c1f54afadef(commit id)

    强制回滚后提交 

    git push origin master --force,把远程强制更新成跟本地一样

     3. 区别

    git revert是用一次新的commit来回滚之前的commit,向前进

    git reset是直接删除指定的commit,向后退

    创建分支

    git branch develop 添加develop分支

    git push origin develop 提交到develop分支,建立本地分支与远程仓库的联系

    git checkout develop 切换到develop分支

    git pull origin develop 只拉取develop分支,如果在develop分支,就拉取代码;如果在其他分支,就拉取并merge代码

    git push origin develop 提交代码到develop分支

    合并分支,把develop分支merge到master

    git checkout master

    git merge develop

    删除分支

    git branch -d develop

    git push origin :develop

    删除远程分支

    git branch -r  查看

    git branch -r -d origin/develop

    git push origin :develop

    更新远程已经删除,但未同步到本地的分支 

    git remote prune origin

    更新远程分支列表

    git remote update origin --prune

    新建一个分支,拉取另一个分支的某个版本号之前的代码

    git log 查看提交版本记录

    git checkout abc

    挑选提交

    git cherry-pick 12345 只把提交版本号12345拉取过来,而不是整个分支

    三、Git vs SVN

    1. SVN每个版本只保存了diff

    2. Git每个版本保存了整个文件,每个版本相当于一个文件夹

    四、git ignore

    1. 最好在新建项目的时候,加上.gitignore文件

    2. 如果在添加.gitignore文件之前,已经push过文件了,那再次提交时,即使加上了.gitignore,也不生效,可以按照以下步骤解决

    https://www.cnblogs.com/andychenjunhong/p/11084217.html

    参考:

    https://blog.csdn.net/yxlshk/article/details/79944535

    https://www.cnblogs.com/andychenjunhong/p/11084217.html

  • 相关阅读:
    IO模型
    Redis的cluster模式
    #4789. 啊孤独感放辣椒
    #4754. 旅途
    #3189. 八纵八横(c)
    洛谷P2624 [HNOI2008]明明的烦恼
    CF938G Shortest Path Queries
    [CTSC2010]珠宝商
    洛谷P1903 [国家集训队]数颜色 / 维护队列
    AtCoder3611 Tree MST
  • 原文地址:https://www.cnblogs.com/june0816/p/6270238.html
Copyright © 2011-2022 走看看