Git 从入门到使用

Git 安装

下载对应版本的安装包,傻瓜式安装(由于我用的Windows平台,这里只讲Windows版的安装)
在你想要的位置创建新文件夹,打开这个文件夹,单击鼠标右键,选择 Git Bash Here ,弹出git命令窗口

Git 从入门到使用_第1张图片

Git 从入门到使用_第2张图片

配置用户信息

每一次备份,git都会把用户信息存储起来

git config --global user.name"xxxx" 配置用户名
git config --global user.email"xxxx" 配置用户邮箱

git工作流

本地仓库由 git 维护的三棵“树”组成。第一个是 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存改动;最后是 HEAD,它指向最后一次提交的结果。

创建新仓库

git init 初始化git仓库(创建新的git仓库)

git仓库用来存放git对代码的备份文件

存储代码到git仓库中

git add ./文件路径 把工作区指定的文件(不包含.git)添加到暂存区
git add ./ 把工作区所有修改过的文件(不包含.git)添加到暂存区
git commit -m"提交信息" 把暂存区的文件提交到本地仓库(版本库)
git commit -all -m"提交信息" 把代码从工作区提交到本地仓库(版本库)

查看仓库状态

git status

git版本控制中要忽略的文件(未完待续)

.gitignore,在这个文件中可以设置要被忽略的文件或者目录。

被忽略的文件不会被提交到仓库中。

在.gitignore中可以书写要被忽略的文件的路径,以 / 开头,一行写一个路径,这些路径所对应的文件都会被忽略,不会被提交到仓储中。

查看提交日志

git log 查看提交日志(提交记录)的详细信息
git log --oneline 查看提交日志(提交记录)的简略信息

切换到指定版本

git reset --hard Head~0 切换到上一次提交的版本
git reset --hard Head~1 切换到上上一次提交的版本

通过版本号切换到指定版本

git reset --hard <版本号> 精确切换到某一次提交时的状态

git reflog 查看切换版本的记录

分支

分支是用来将特性开发绝缘开来的。在创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

git branch dev 创建一个叫做dev的分支

在dev分支刚创建时,dev分支里的内容和master分支里的内容是一样的。

git branch 查看所有分支,以及当前所在分支
git checkout dev 切换到dev分支
git checkout -b new_branch 创建一个叫做 new_branch 的分支,并切换到这个分支
git merge dev 合并dev分支到当前分支

合并分支时,如果遇到冲突,需要手动进行处理,然后再进行一次提交。

git diff 查看两个分支的差异
git branch -d dev 删除dev分支,只能删除非当前分支的分支

本地仓库和远程仓库

git push <远程地址> master 把当前分支的代码推送到指定远程仓库的master分支

同样可以推送其他分支到远程仓库,如果某一个分支没有被推送到远程仓库,那么该分支对于其他人来说就是不可见的。

git pull <远程地址> master 把远程仓库master分支上的代码下拉到本地

注意:需要先初始化一个仓库

git clone <远程地址> 把远程仓库复制到本地,如果多次执行会覆盖本地内容

通过ssh方式上传代码(未完待续)

公钥 和 私钥
生成 公钥 和 私钥

push 和 pull

在本地提交之前,先pull,后push;这样操作的好处是:如果远程仓库版本与本地版本冲突,可以先处理冲突,再把最新版本push到远程仓库。
git remote add origin <远程地址> 将本地仓库链接到远程服务器,并将远程仓库地址命名为origin
git push origin -u master 推送本地当前分支代码到远程仓库指定的master分支,并将当前分支与远程指定分支进行关联

在push时,加上 -u 参数,git会把当前分支与远程指定的分支进行关联,这样在下一次push时,只需要写 git push 就可以上传代码了,同时,使用 git pull 就可以下拉代码了。

标签

建议为软件发布创建标签。在svn中也有相应的概念。

git tag 1.0.0 1b2e1d63ff 创建一个叫做1.0.0的标签

1b2e1d63ff 是想要标记的提交ID的的前10位字符(只要这个指向具有唯一性就可以),可以使用git log获取ID

替换本地改动

git checkout -- 替换该文件的本地改动

如果操作失误(最好不要出现这种情况),使用该命令替换本地改动,它会使用 HEAD 中的最新内容替换掉工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。

如果要丢弃所有的本地改动,可以到远程仓库获取罪行版本,并将本地分支指向它。使用以下两个命令。
git fetch origin
git reset --hard origin/master

特殊技能

gitk 内建的图形化git

你可能感兴趣的:(git,版本管理工具,版本控制,版本管理,版本)