[东拼西凑]GIT Extensions安装与使用

东拼西凑来的,非原创,侵删

开门见山:
自新版本起,GIT Extensions(下称 GitEXT)成为单独的安装文件。而旧版本的exe把需要的插件都包含了,安装起来会方便些。比如GitEXT2.49
但是,我这里讲的是新版本安装,自己动手丰衣足食。因此,我们需要自己准备相应的安装文件。以下分别是相应的官网链接:

http://www.softpedia.com/get/Programming/Other-Programming-Files/Git-Extensions.shtml

https://git-scm.com/download/

http://kdiff3.sourceforge.net/

(多一句话:GitEXT是git的可视化工具,取代了git很多的命令行输入,因此,下文讲解大都以git为介绍对象)

有一些命令要注意:
git checkout是切换分支,在git中可以存在很多分支,通过checkout可以随时改变当前工作的的分支
git commit是将本地改动,提交到本地git,然后通过push才真正同步到服务器,然后大家才能看到你的改动。
pull与push正好相反,push往服务器推,pull从服务器拉,可以直接拉回一个master或其他分支

简述一下,git开发流程:

  1. 在本地git clone一下远端仓储,实现本地的一个样本

    git clone 服务器帐户@IP:项目.根路经
    git clone [email protected]:android2.2.git

说明:这里假定服务器的用户名为git,服务器IP为192.168.20.22,项目名为android2.2,根路经为git的home(即根路径)

  1. 本地 增删查改 N多地方 后
    git add 改动的文件
    git commit #(提交至本地
    git pull #(将服务器项目与本地项目合并)
    git push #(将本地项目上传至服务器
    (在提交前要git pull 一下,确保本地的代码为最新。如果不是最新,会导致push conflict,需要自己手动调整。这种情况经常出现,除非事先沟通好。谁先push好,然后再让别人pull,更改后再push。但这样无法实现并行开发的效果。因此,手动调整conflict也是常见的)

一些术语
(一下命令都是git命令行输入使用,在GitEXT中,已被UI替代)

未被Git跟踪的状态为unstage状态。已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态。untrack files是指尚未被git所管理的文件;changed but not updated是指文件被git管理,并且发生了改变,但改动还没被git管理;这两种状态,都可以看成是改动还没被git管理的状态,我们这里称非stage状态

changes to be commited是指进入stage状态的文件,stage是commit和未管理之间的一个状态,也有别名叫index状态,也就是git已经管理了这些改动,但是还没完成提交

.gitignore中的文件,不会出现在以上三个状态中。

git的个人本地使用及操作

1, 创建Git库
cd 源码目录
git init #初始化 在源码目录内生成一个.git的目录

2, 注册用户信息
git config --global user.name XXX 用户名
git config --global user.email XXX 用户邮箱
git config –list #查看用户信息

3, 向git库中添加或删除文件
git add XX #加单个文件
git add . #加所有
git add [path]会把对应目录或文件,添加到stage状态
git add . 会把当前所有的untrack files和changed but not updated添加到stage状态

4, 向版本库提交变化

git commit –m “XXXX” #直接添加简单提交信息,添加注释
git status #查看当前代码库的状态
git log #查看版本信息
git log –p #查看版本信息并显示每次修改的diff
git show sdjf974654dd…. #查看指定版本信息
#(show后面为每次提交系统自动生成的一串哈希值)
git show sdji97 #一般只使用版本号的前几个字符即可

5, 撤销与恢复

git reset
git reset --hard #回到原来编辑的地方,改动会丢失。

#(同样适用于团队对于其他人的修改恢复)
git reset --hard sdv143kvf…… #可回到指定的版本

#(hard后面为每次提交系统自动生成的一串哈希值)
git reset [path] 会改变path指定的文件或目录的stage状态,到非stage状
git reset 会将所有stage的文件状态,都改变成非stage状

6, 向服务器提交变化

git push #向服务器提交

7, 暂存改动

git stash可以把当前的改动(stage和unstage,但不包括untrack的文件)暂存。然后通过git stash list查看。并通过git stash apply重新取出来。但apply之前要保证worktree是干净的

git的分支管理

git分支操作在本地建立分支,然后与本地主枝合并,最终提交到服务器。有效的避免了因个人操作不当向服务器提交过多脏数据,避免频繁git clone服务器来更新本地库

分支操作指令:

1, 建立分支

git branch AAA     #建立分支AAA

2,分支切换

git checkout AAA    #从当前分支切换到AAA分支

3, 将分支与主枝master合并

git checkout master     #(首先切换回主枝)
git merge AAA         #(将分支AAA与主枝合并)

4, 当前分支查看

git  branch            #默认有master(也称为主枝)
git  branch –a 查看当前所有分支

5, 删除分支

git branch –d  AAA     #删除分支AAA

备注:上面只是一些基本的操作命令,更多的命令可通过帮助文档查询。

man git-<需查询的指令>      #(git后面有“-”)
如commit的查询为  man git-commit

删除分支 ; 如果你要删除的分支并没有被merge到当前分支的话,将产生一个错误提示。

猜你喜欢

转载自blog.csdn.net/ysgjiangsu/article/details/85015627