git基础概念和常用命令

IDEA右键能直接查看该文件git提交过往记录

经验教训

  • 提交到master之前, 记住要先merge一下master, 然后再让master merge!!!

常用命令

  • git clone 项目url(clone某个项目)
  • 删除远端分支:git push origin 【空格】【冒号】【你的分支名字】,比如我github上有master和feature分支,我现在想着删除feature分支,命令如下: git push origin :feature
  • 查看远程库: git remote(-v 显示详细信息)

提交命令

  1. git status(查看项目状态)
  2. git add(添加文件)
  3. git commit(添加评论,并且将变更提交到本地工作区)
  4. git push origin branch(发布到远端服务器)

删除文件

  1. git rm test.txt
  2. git commit -m "remove test.txt"

分支相关

  1. git branch -r 查看远端分支
  2. git branch -a 查看本地分支和远程分支
  3. git branch [branch-name] 新建分支,但不切换
  4. git checkout -b [branch] 新建分支,并切换
  5. git checkout [branch-name] 切换到指定分支
  6. git branch --set-upstream-to [remote-branch] [branch] 在现有分支和远端分支之间建立关系
  7. git branch 查看当前分支
  8. git branch -d <name> 删除分支(-D 强行删除)
  9. git merge <name> 合并某分支到当前分支
  10. git checkout -b dev origin/dev(将远程分支dev拉取到本地的dev[未建立])

解决冲突

同一份代码, 提交的结果不一样, 如何裁定?

  1. git pull(将远端服务器的代码拉取下来)
  2. git diff(查看不一致的位置,并且修改)
  3. 再次重复提交命令。

回到过去

利用HEAD回到过去
  1. git log(查看git日志)
  2. git reset --(hard/soft) commit_id

回到未来

  1. git reflog(查看所有的commit 和 reset 操作 包括已经删除的,git log不能查看已经删除的commit)
  2. git reset --(hard/soft) commit_id

git概念

  • 版本控制管理工具(控制和管理代码)
  • 集中式版本控制(有一台中心服务器用来控制和管理版本,各个终端通过这个服务器来协同合作),分布式版本控制(每个终端都控制和管理自己独立的版本,需要协同合作的时候相互推送自己的版本,但实质上分布式也通常通过一个充当中心服务器的终端来协同合作)
  • 版本库:使用git init / git clone后, 会在文件夹中生成一个.git的隐藏文件夹, 这个文件夹(.git)就是一个git的版本库。文件夹里有.git文件夹里的修改删除将会被git追踪。
  • git版本回退
  • 工作区和暂存区:文件夹里排除.git文件夹 的东西被称为 工作区,而这个.git文件被称为 版本库。
    工作区与版本库的关系

    提交操作的实质
  • 撤销修改:1. 这个修改未add到暂存区,
    撤销某个文件的修改

    。2.这个修改已经add到暂存区,
    先回退,再撤销
  • 添加远程库
  • 分支:
    分支示意图

    。HEAD始终指向你当前分支的最新版本。创建一个新的分支,只不过是在原有分支的情况下多建立一个指针指向当前分支。

  • 解决冲突:
    冲突merge示意图

    , 先进行merge, 如果两个版本有冲突的话, 将冲突的文件进行修改后add, commit,就自动合并了,然后选择性删除另一分支。

  • 使用fast-forward的merge结果

    不使用fast-forward的merge结果
  • 如果你在dev下开发一半,突然要切换到主分支,或者XX分支进行BUG修复,咋办呢?思路:1,先保存住工作区的内容 (git stash)。2,切换到某个分支(git checkout branch)。3, 搞出一个修复bug的分支(git checkout -b bugBranch)。4,解决问题,到主分支merge一下(git checkout branch、 git merge bugBranch)。5,继续开发你的dev(git checkout 、git status、 git stash pop)。
  • 当你clone一个项目的时候,git 会自动把本地的master分支和远程的master分支对应起来。远程仓库默认名字叫origin。
  • 多人协作小结
  • rebase TODO
  • 标签实质是一个commit,只不过名字比较好记。标签和一个commit一一对应。用来表示某个版本。
    标签小结1

    标签小结2
  • 忽略文件
  • 配置别名,修改用户目录下的.gitconfig文件。
  • git merge实质是两个分支的最新commit和最原始的commit(两个分支分开的地方)进行比对,如果如果没有操作冲突,就自动merge,否则需要修改
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1,查看所有远程分支:%git branch -r 2, 拉取远程分支并创建本地分支git checkout -...
    will666阅读 2,103评论 0 18
  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 5,116评论 1 45
  • 三大区域: 工作区 → 缓存区 → 本地仓库 一 、 使用 git config 命令进行配置: git ...
    Manchangdx阅读 2,882评论 0 2
  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,958评论 5 147
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,648评论 1 26