目录
Git的下载与安装:http://t.csdn.cn/ZXndP
一、注册账号、创建Git仓库
Git中存在两种仓库,远程仓库和本地仓库。借助代码托管服务搭建远程仓库。
码云(地址:https://gitee.com/)
首先根据码云地址注册登录。
创建仓库,可以点击如下两个地方创建仓库。
根据自身需求填写仓库名,介绍,私有还是开源等,然后点击创建。
二、邀请其他用户
创建远程仓库都有多个使用者,方便拉取推送代码。
点击管理
在仓库成员管理下根据想要开放的权限选择角色邀请用户。
然后选择添加仓库成员>邀请用户,选择喜欢的方式邀请用户。
三、Git常用命令
(1)环境配置
当安装Git后首先要做的就是设置用户名称和Email地址。每次Git提交都会使用到用户信息。
鼠标右键点击Git Bash Here
#1.配置当前用户用户名
git config --global user.name "用户名"
#2.配置当前用户邮箱
git config --global user.email "邮箱"
#3.查看配置信息
git config --list
(2)在本地初始化Git仓库
可以在任意位置创建文件夹随意取名当仓库。
然后打开
执行初始命令git init
git init
创建成功
注: 文件夹.git为隐藏文件夹。
(3)从远程仓库克隆
在想要克隆仓库放置的目录下打开
执行克隆命令
git clone 远程仓库网络地址
仓库网络地址获取
执行成功
(4)工作目录、暂存区
版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
工作目录(工作区) :包含.git文件夹的目录就是工作目录,主要用于存放开发的代码。
暂存区: .git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方。
Git工作目录下的文件存在两种状态:
◆untracked未跟踪(未被纳入版本控制)
◆tracked已跟踪(被纳入版本控制)
Unmodified未修改状态
Modified已修改状态
Staged已暂存状态
查看文件状态命令 。
git status
更简洁的查看文件状态命令。
git status -s
注:已经被跟踪,而且没有被修改状态的文件不提示。
将文件添加到暂存区
git add 文件名
将文件移除暂存区
git restore --staged 文件名
(5)将暂存区文件修改提交
将所有暂存区文件提交到本地仓库命令。
git commit -m "当前版本描述信息"
注:要想提交文件,必须先加到暂存区,每次修改过后都加一次,然后才能提交。
(6)删除文件
git rm 文件名
(7)将文件添加至忽略列
对一部分不需要Git管理的文件,也不想总出现未跟踪提示,就添加至忽略列。
在工作目录中创建 .gitignore的文件。
打开.gitignore文件,按以下格式配置方式,配置想要忽略的文件。
*.a
所有以.a结尾的文件都会被忽略。
!lib.a
lib.a文件不进行忽略。
/TODO
当前目录下TODO文件进行忽略。
build/
build目录下所有文件忽略。
doc/*.txt
doc目录下所有以.txt结尾的文件,都进行忽略。
doc/**/*.pdf
doc目录及所有子目录下,以.pdf结尾的文件,都进行忽略。
(8)查看日志记录
查看在仓库每次操作的记录,以及每次操作的用户。
git log
注:一次显示不全,通过不断敲回车进行查看,查看结束,随时通过输入Q退出查看。
四、远程仓库操作介绍及命令
前面执行的命令都在本地仓库进行操作,工作区从本地仓库Checkout项目文件,在工作区有希望Git管理的文件,进行修改后(修改包括删除),先通过 git add 文件名 命令添加到暂存区 ,再通过git commit -m "当前版本描述信息" 命令提交到本地仓库。
(1)查看远程仓库
如果想查看已经配置的远程仓库服务器(克隆的远程仓库,默认为配置的仓库服务器,默认名字为origin),可以运行git remote命令。它会列出指定的每一个远程服务器的简写。
git remote
如果想要知道远程仓库的地址,可以运行命令。
git remote -v
如果想知道更加详细的信息。
git remote show 服务器别名
(2)添加远程仓库
添加一个新的远程仓库,同时指定一个可以引用的简写。
git remote add 仓库名 远程仓库地址
注: 仓库名可以随意设置,远程仓库也可以添加多个,添加方法不变。
(3)移除远程仓库
如果因为一些原因想要移除一个远程仓库 ,可以使用
git remote rm 仓库名
注:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库。
(4)从远程仓库抓取
git fetch是从远程仓库获取最新版本到本地仓库,不会自动merge(合并)。
首先随便找一个文件夹,在里面执行git init命令初始化。此时和远程仓库没有连接
然后用git remote add命令和远程仓库建立连接。
执行命令抓取数据。
git fetch
此时我们发现,远程仓库里面是有文件的,抓取完过后我们会发现,工作区并没有那些文件。因为此时文件我们已经抓取到本地仓库了,但是并没有合并(merge)到工作区,此时抓取的文件以二进制的形式存放在.git文件的objects里。
文件想在工作区显示出来,我们还需要执行
git merge 仓库名/分支
分支在执行git fetch抓取命令时会得到, 执行完后文件在工作区中出现。
master分支也能在这找到。
(5)从远程仓库拉取
从远程仓库拉取和抓取的区别在于,git pull拉取命令会自动进行merge(合并)。
git pull 仓库名 分支
不用执行git merge拉取文件就会在工作区显示出来。
注:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories。
(6)推送到远程仓库
当你想分享你的代码时,可以将其推送到远程仓库。命令:
git push 仓库名 分支名
首先新建一个Hello.txt文件,通过 git add添加暂存区,git commint -m提交到本地仓库;然后使用git push命令把文件推送到远程仓库,需要用自己注册的用户名和密码进行验证。
验证成功后,文件推送到远程数据库。
如果对仓库文件修改过后,想直接提交到本地仓库用命令:
git commit -a -m "当前版本描述信息"
五、分支操作介绍
(1)查看分支
分支分成本地分支,和远程分支。
本地分支:
远程分支:
◆查看分支
#列出所有本地分支
$ git branch
#列出所有远程分支
$ git branch-r
#列出所有本地分支和远程分支
$ git branch -a
(2)创建分支、切换分支
创建分支:
git branch 分支名
注:创建分支名可随意,但不可与现有分支名重复。
前面带*号,且是绿色表示现在使用的分支。
切换分支:
git checkout 想要切换分支名
(3) 推送至远程仓库分支
把本地的分支,推送到远程仓库。
git push 仓库名 分支名
(4)合并分支
在a1分支下,在工作区创建文件,并添加到暂存区,提交到本地仓库。
当我们切换回master分支过后,db.txt文件就不见了,恢复master分支状态。
想把a1分支合并到master分支,在master分支下,通过命令:
git merge 想合并的分支名
注:有时候合并操作不会如此顺利。如果你在两个不同的分支中, 对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决。
(5)将新添加的文件推送
git push 仓库名 分支名
(6)删除分支
删除本地分支,命令:
git branch -d 分支名
如果要删除的分支中进行了一些开发动作, 此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D。
git branch -D 分支名
如果要删除远程仓库中的分支,可以使用命令:
git push 仓库名 -d 分支名
六、Git标签
像其他版本控制系统(VCS) 一样,Git可以给历史中的某一个提交打上标签,以示重要。比较有代表性的是人们会使用这个功能来标记发布结点(v1.0、 v1.2等)。标签指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。
(1)列出已有的标签
查看标签命令:
git tag
查看标签信息命令:
git show 标签名
(2)创建新标签
创建标签命令:
git tag 标签名
标签名可以任意取,但是通常用版本号。
(3)将标签推送至远程仓库
将标签推送到远程仓库命令:
git push 仓库名 标签名
(4)检出标签
一般情况下,我们在检出标签的时候都会去创建一个新的分支,让这个分支指向标签,命令:
git checkout -b 分支 标签
(5)删除标签
删除本地标签
git tag -d 标签名
删除远程仓库标签
git push 仓库名 :refs/tags/标签名