Git相关命令

GIT(分布式版本控制系统):

  Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非 常大的项目版本管理。

1.用git创建(在E盘的git目录下创建)一个叫myWebSite的目录(用于存储个人网站),并把它放到git版本库里:

  cd e:/git————-进入操作目录

  mkdir myWebSite——新建文件夹

  cd myWebSite———进入新建的文件夹

  echo 'My website is alive!' > index.html——新建的目录下 新建了一个index.html文件,并初始化了内容

  git init—————将所在目录(myWebSite)转化为git版本库(此时的版本库是空的,目录下的文件默认不会被放入版本库中,视为临时文件)

2.将文件添加到版本库中:

  git add index.html——将index.html(指定文件)添加到版本库中

  git add .——————–将当前目录及子目录中的文件都添加到版本库里

3.配置提交作者:

  git config user.name "chen shanshan"————配置姓名

  git config user.email "[email protected]"——配置email地址

4.提交文件:(在任何编辑之后,提交之前,都要执行git add命令 去更新索引)

  git commit -m "Test use git to commit file." (提交先要进行 git add 操作)

  可以设置GIT_EDITOR环境变量来在交互式编辑器(vim)中编辑内容(vim编辑器的使用方式见扩展1),设置方法:export GIT_EDITOR=vim

  git commit -am "提交信息" 合并git add 和 git commit 操作(适用于比较小的变更)

5.查看提交:

  git status—————显示版本库里 中间状态(已经 add操作 还没 commit操作 / 或commit后修改过)的文件 

  git log—————— 一系列单独提交的历史。后加 -p 查看前后差异;后加文件/目录 名查看指定文件/目录相关的日志(当前面出现个冒号无法输入命令时,按「q」键)

  git show 提交码(50fd4db21ca586dacf547b23b14374e942b81469)–查看特定提交的更详细的信息(不写提交码默认显示最近一次的)

  git show-branch --more=10(git show-branch)——————–当前开发分支简洁的单行摘要,–more=10表示最新的10个版本(即提交日志)

6.查看更改之后的差别:

查看工作树和暂存区的差别:git diff

查看工作树和最新提交的差别:git diff HEAD

“+”号标出的是新添加的行,被删除的 行则用“-”号标出:

diff --git a/README.md b/README.md

index e69de29..7ca0b44 100644

--- a/README.md

+++ b/README.md

@@ -0,0 +1,2 @@

+# git test

+# git

\ No newline at end of file

7.修改(新建)文件:

1.touch 文件名———直接新建一个文件

2.vi 文件名————–新建一个文件并进入编辑状态(已存在文件直接进入编辑状态)

3.如果没用过linux和vim,最直接的就是在windows下新建、修改文件吧!!!

8.版本库内文件的删除和重命名:

删除文件:(和git add一样。git rm 表示想要删除文件,git commit 实现删除操作)

git rm aaa.html bbb.txt删除版本库内的aaa和bbb两个文件 (可连续输入:ls / git rm aaa.txt /  git commit -m “Remove aaa.txt”)

重命名文件:git mv index.html aaa.html          //(防止git rm命令会将index文件永久删除, 必须先执行mv操作)

git rm index.html

git add aaa.html

git commit -m "Moved index to aaa"  //在任意情况下,暂存的变更必须随后进行提交




9.创建版本库副本:

  git clone website clone_website(克隆远程仓库:git clone [email protected]:/option/git/provider1.git provider1)

(克隆网站上的版本库副本:git clone \(回车) git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git)

10.其他命令:

查看日志: git log --pretty=oneline

回退:到上一版本:git reset --hard HEAD^

——–到指定版本:git reset --hard 3628164

迁出: git checkout xxx.txt(未放入暂存区:恢复成版本库;放入暂存区:恢复成暂存区)

查看和上一版本变化的内容:git diff xxx.txt

远程版本库:创建公钥:ssh-keygen -t rsa -C “邮箱”

11.分支:

  查看分支:git branch (列表显示分支名,所在分支前有*)

  查看分支:git log --graph (以图表形式查看分支)

  新建分支:git branch 分支名

  切换分支:git checkout 分支名

  新建并切换分支:git checkout -b 分支名

  删除分支:git branch -D 分支名

  合并分支:

1.首先切换回master分支:git checkout master

2.然后合并子分支(如:feature-A): git merge --no-ff feature-A(加上 –no-ff参数 创建和并提交,来在历史记录中明确记录下本次分支合

并)

13.更改提交的操作:

  查看当前仓库的操作日志:git reflog (所有操作都记录下,可查看回溯历史之前的哈希值)

  回溯历史版本:git reset --hard 哈希值(81d5c7e) (取一个之后版本的哈希值就可以实现推进历  史了)

  修改上一次提交信息:git commit --amend (分支的合并提交信息可以为:Merge branch ‘分支名    ’)

  解决冲突:

  打开冲突文件,是这个样子:(等号以上的部分是当前 HEAD 的内容,以下的部分是要合并的分支中  的内容)

  # Git Test

  <<<<<<< HEAD

  - feature-A

  - fix-B

    >>>>>>> fix-B

  可以手动改成下面这样,再执行 git add命令与 git commit命令:

    # Git Test

    - feature-A

    - fix-B

注意:在实际的软件开发中,往往需要删除其中之一,所以各位在处理冲突时,务必要仔细分析冲突部分的内容后再行修改

14.压缩(更改)历史: 提交一个修改到前一个提交中,压缩成一个历史记录(假设最新的一次提交是修改了前一次提交的一个小问题,可将最后一次提交压缩到前一次)

  git rebase -i HEAD~2 会在编辑器中打开两个最新的历史记录,将后一个前面的 pick 改为 fixup

15.把已有仓库推送至远程仓库(以首个开发者的身份)

  将它设置成本地仓库的远程仓库(与远程仓库建立连接)

  git remote add origin https://github.com/用户名/仓库名.git

  也可以写成下面:

  git remote add origin [email protected]:用户名/仓库名.git

  推送至远程仓库(加 -u 是为了将 origin 仓库的 master 分支设置为本地仓库当前分支的上游)

  推送至master分支: git push -u origin master

  推送至其他分支:git push -u origin 分支名(feature-B) (将本地仓库中的分支 push 给远程仓库并保持分支名称不变)

  删除远程仓库上的分支(github上的仓库):git push origin :feature-B

16.从远程仓库获取(以后来合作开发者的身份)

  从远程仓库获取 xxx 分支,在本地仓库中提交更改,再将 xxx 分支推送回远程仓库,通过这一系列操作,就可以与其他开发者相互合作,共同培育 xxx 分支,实现某些功能。

  获取远程仓库:git clone [email protected]:用户名/仓库名.git (默认处于master分支下)

  查看获取后的本地仓库和远程仓库的分支信息:git branch -a

  获取远程分支到本地仓库:git checkout -b 本地新建分支名 origin/远程分支名

  向本地的分支提交更改(和之前的操作一样),完成后,推送分支:git push

  在推送分支之前,先要获取最新的远程仓库分支:git pull origin 远程分支名

你可能感兴趣的:(Git相关命令)