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>