git本地版本控制

git 分支操作

  1. 查看分支
  • 查看本地:
    git branch
  • 查看本地和远程:
    git branch -a
  1. 创建分支
  • 本地创建:
    git branch [branch name]
  • 远程提交并创建:
    git push 【远程仓库名】 【本地分支】:【远程分支】
  1. 删除分支
  • 本地删除:
    git branch -d [branch name]

  • 远程删除:
    git push [仓库名] --delete [远程分支名]

  • 分支改名:
    git branch -m 【旧分支名】【新分支名】

  1. 本地切换分支
  • 切换分支:
    git checkout [branch name]
  • 创建分支并切换:
    git checkout -b [branch name]

注意:切换到新的分支后文件不会有改变,只有提交后新分支才有改动,才可以上传push,
并且,新分支未提交前,切换回旧分支文件不会变化。
若新分支出了问题要返回上一个状态,则先切换新分支命名error,并提交commit,然后返回前一个版本,则文件会变回原来样子。

推荐:在当前分支修改完之后,建立切换到一个新的分支并在新的分支提交,于是旧分支保持原来状态,新分支为新的状态。

  1. 分支提交
    在当前分支修改数据后提交,该分支则改变,否则切换其他分支时会提醒提交
    git add .
    git commit -m “”
    git commit -am “”
    git commit -a --amend

git commit 命令将暂存区内容添加到本地仓库中。
提交暂存区到本地仓库中:
git commit -m [message]
[message] 可以是一些备注信息。
提交暂存区的指定文件到仓库区:
$ git commit [file1] [file2] … -m [message]

git commit --amend 命令为修改最新的提交,对最新的提交中的一部分进行修改

如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:
git commit -am “message”

  1. 分支上传
    git push 【远程仓库名】 【本地分支】:【远程分支】
    注意:本地分支名和远程分支名相同则只要写一个就行。
    强制推送:
    git push -f origin master

查看日志(图像):
git log --graph

  1. 分支合并
    一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支(将新的分支内容复制过来,是完全替换),而原来的新分支不变。
    你可以使用以下命令将任何分支合并到当前分支中去:
    git merge [需要合并到当前分支的分支]

  2. git clone
    我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。

克隆仓库的命令格式为:

git clone
如果我们需要克隆到指定的目录,可以使用以下命令格式:

git clone
参数说明:

repo : Git 仓库。
directory : 本地目录。

  1. 设置提交代码时的用户信息:
    $ git config --global user.name “runoob”
    $ git config --global user.email [email protected]

Git 基本操作
Git Learning

git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异。
git diff 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件对区别。
git diff 有两个主要的应用场景。
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat

git mv 命令用于移动或重命名一个文件、目录或软连接。
git mv [file] [newfile]
如果新但文件名已经存在,但还是要重命名它,可以使用 -f 参数:
git mv -f [file] [newfile]
我们可以添加一个 README 文件(如果没有的话):
$ git add README
然后对其重命名:
$ git mv README README.md
$ ls
README.md

git remote 命用于在远程仓库的操作。
本章节内容我们将以 Github 作为远程仓库来操作,所以阅读本章节前需要先阅读关于 Github 的相关内容:Git 远程仓库(Github)。

  • 显示所有远程仓库:
    git remote -v
  • 显示某个远程仓库的信息:
    git remote show [remote]
  • 添加远程版本库(shortname 为本地的版本库):
    git remote add [shortname] [url]
  • 其他相关命令:
    git remote rm name # 删除远程仓库
    git remote rename old_name new_name # 修改仓库名

当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用

1 git rm file_path
2 git commit -m 'delete somefile'
3 git push

当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用

git rm --cached file_path
git commit -m 'delete remote somefile'
git push

对所有文件取消追踪

git rm -r --cached .   //不删除本地文件
git rm -r --f .   //删除本地文件
  1. 使用.gitignore文件去除不需要的追踪文件
    千万要注意:
    如果你在创建.gitignore文件之前就已经push项目了,那么即时你在.gitignore文件中写入新的规则,这些规则也不会起作用。
    有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

在.gitignore中写入不需要追踪的文件路径,然后终端

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

注意:
不要误解了 .gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。
如果文件曾经被 Git 记录过,那么.gitignore 就对它们完全无效。

你可能感兴趣的:(git学习,git)