“人对喜欢的东西 会有超过200%的用心和耐心 所以她爱不爱你其实很明显.” --散文集《我在人间凑数的日子》

git 的使用

git 的使用

一、安装配置 git

1. 安装 git

Linux:
 CnetOS:yum install git-core
 Ubantu:apt-get install git-core
Windows:
官方下载即可 https://git-scm.com/

2. git 配置

git config指令,具体情况如下:

  • /etc/gitconfig文件:系统中对所有用户都适用的配置,使用--system选项配置该文件。
  • ~/.gitconfig文件:用户目录下的配置文件只适用于该用户,使用--global选项配置该文件。
  • 当前项目的.git目录中的配置文件(工作目录下的./git/config文件):配置仅针对当前的项目。

3. 配置用户名和电子邮箱

git config --global user.name "username"
git config --global user.email "user@email.com
配置成功后,每一次提交项目去git中,均会引用这两条信息。

4. 配置文本编辑器

默认情况下,git会使用操作系统指定的默认编辑器,一般是vi或vim。但可以通过指令来进行重新设定:

使用Emacs编辑器:
git config --global core.editor emacs

5. 配置差异分析工具
解决合并冲突时,改用常使用的vimdiff作差异分析工具:
git config --global merge.tool vimdiff

6. 查看配置信息
git config --list
有时候会查询出相同的变量名,这种情况是由于它们来自不同的配置文件,但实际有效(被git所采用)的是最后一个。

也可以直接查询某个环境变量名,只需把特定的变量名加在参数后面即可
git config user.name

7. 帮助

有三种方式可以使用帮助:

  • git help <verb>
  • git <verb> --help
  • man git-<verb>

二、git 常用命令

1. 创建新仓库

新建文件夹,cd到该文件夹,执行
git init

2. 检出/拉取仓库

  • 创建本地仓库的克隆
    git clone /path/to/repository
  • 创建服务器仓库的克隆
    git clone URL

3. 添加与提交

将改动添加到缓存区
git add <filename>

git add .可以将所有文件添加到缓存区

提交改动
git commit -m "代码提交信息"

4. 推送改动

通过以上步骤,改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远程仓库。
git push origin master

如果还没有克隆现有仓库,并想要将仓库连接到某个远程服务器,你可以使用如下命令添加:
git remote add origin <server>

三、git 分支

1. 创建分支

创建一个dev分支,并切换过去
git checkout -b dev

切回 master 分支
git checkout master

2. 删除分支

删除 dev 分支
git checkout -d dev

3. 推送分支

将分支提交到远程仓库
git push origin <branch>

四、更新与合并

更新本地仓库到最新改动
git pull

以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master)
git merge <branch>

如果发生冲突(conflicts),需要手动合并这些冲突。

可以查看两个不同分支到区别:
git diff <source_branch> <target_branch>

五、替换本地改动

替换掉本地改动
git checkout -- <filename>
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。

假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:
git fetch origin
git reset --hard origin/master

六、远程仓库使用相关

10、远程仓库的使用

查看当前目录下的远程仓库:
git remote -v
(不加-v只显示远程仓库名字,加-v后同时显示远程仓库地址)。
远程仓库的默认命名为origin

添加一个新的远程仓库:
git remote add [shortname] [url]
之后可以使用shortname指代该远程仓库,同时目前只是添加远程仓库,还需要执行git fetch [shortname]将远程仓库上的文件拷贝到本地。

从远程仓库获取更新:git fetch [remote-name]
需要注意的是,该命令只是将远程仓库的数据拉到本地仓库,但并不自动合并到工作分支中。

如果设置了某个分支用于跟踪远程仓库的分支,可以使用
git pull
命令自动抓去数据下来,并自动合并到工作目录。实际上,使用git clone命令克隆的远程仓库就是跟踪了分支,可以直接使用git pull跟新到本地工作目录。

推送更新去远程仓库:git push [remote-name] [brance-name]
如果是clone下来的分支,可以使用默认的名称git push origin master

查看远程仓库信息:git remote show [remote-name]

远程仓库的重命名:git remote rename [old_name] [new_name]重命名后的本地分支名同样也会跟着变化。

远程仓库的删除:git remote rm [remote-name]

七、撤销操作

撤销操作

撤销分为几种情况:修改最后一次提交,已暂存的撤销,取消对文件的修改(文件还原)。

修改最后一次提交:git --amend。此命令用在已经提交一次之后,发现提交文件存在问题,或者是遗留未提交的文件,此时将需要修改的文件重新add入存储区,再执行git --amend即可。如果想要修改提交说明,在存储区中没有新的文件时执行该命令,会有机会重新编辑提交说明,编辑后保存,即会覆盖上一次的内容。不论是哪一种,都会被作为一次提交处理。git log中也只会有修改后的记录。

取消已暂存的文件:git reset HEAD <file>。此命令会将已经执行add添加入暂存区域的文件重新移出。

取消对文件的修改:git checkout -- <file>

Kimiato

发表评论

电子邮件地址不会被公开。 必填项已用*标注

隐藏
变装
正在获取,请稍候...
00:00/00:00