本文是我在[实验楼]这个平台学习git时的第一篇学习笔记,现贴出来以飨大家!
git学习
1、git的配置
git的配置主要通过git config --global <配置名称> <配置的值>
来对git进行配置
其中最常用的配置为:
git config --global user.name name
git config --global user.email email
完成配置后,配置信息会存在于一个隐藏文件中:.gitconfig
。可以通过cat .gitconfig
查看配置内容。
2、获取一个Git仓库
这有两种方法:
1、从已有的Git仓库中克隆(clone)。通过git clone URL
方式clone代码。
2、新建一个仓库。通过git init
在某文件夹中初始化一个空仓库,初始化完毕后,在该文件夹中会新建一个隐藏文件`.git``
3、git的基本流程
1、创建或修改文件
2、使用git add
命令添加新创建或修改的文件到本地缓存区(index)
3、使用git commit
命令提交本地代码库
4、使用git push
命令将本地代码库同步到远端代码库
git status
查看当前git仓库的状态,新建的文件的状态时:untracked
使用git add file
命令将文件加入到缓存区(index)后,该文件状态会改变为:new file
使用git diff --cached
查看缓存区中哪些文件被修改了,进入该界面后,需要输入q
才可以退出,该命令只查看加入到缓存的文件的变化。
使用git commit
提交修改,git commit
可选参数:-m
添加本次修改的注释,完成后就会记录一个新的项目版本。:-a
将没有加到缓存区的修改也一起提交,对已提交过的文件进行修改后,文件状态变为:modified
,需要注意的是-a
命令不会添加新建的文件,如果一个文件不是新建的,而是被修改过,则可以通过这个命令提交,如果是新建的,则不能进行提交。
如果是删除文件,则直接使用git rm
命令删除后会将已删除文件的信息添加到缓存区,git commit
提交后就会将本地仓库中的对应文件删除。
如果希望将本地仓库关联到远端服务器,可以使用git remote
命令,当前仓库是使用git init
初始化的本地仓库,所以需要将本地仓库与远程仓库关联,使用的命令为:
git remote add origin https://github.com/user-name/project.git
git remote add
命令用于添加远程主机,origin
是主机名,可以自定义,https://github.com/user-name/project.git
是要关联的远程仓库地址。
提交代码:
git push origin master
4、分支与合并
git分支可以让你在主线(master)之外进行代码提交,同时又不会影响代码库主线。
分支的作用:体现在多人协作开发中,比如一个团队开发软件,你负责独立的一个功能需要一个月的时间来完成,你就可以创建一个分支,只把该功能的代码提交到这个分支,而其他同事仍然可以继续使用主线开发,你每天的提交不会对他们造成任何影响。当你完成功能后,测试通过再把你的功能分支合并到主线。
1、创建分支:
git branch branch-name
git branch
命令可以查看当前的分支列表,以及目前的开发环境处于哪个分支上。
2、切换分支
master
分支是git系统默认创建的主分支,*
号标识了你当前工作在哪个分支下。
git checkout 分支名
可以切换到其他分支。
3、合并分支
通过git merge
合并分支
eg:
git merge -m "注释" 需要合并的分支名
如果不同分支同时修改了同一文件,则不能直接通过git merge
命令合并。此时通过git status
查看状态,则被同时修改的文件的状态为:both modified
此时查看被修改的内容,可以看到不同分支对该文件的修改,也可以通过git diff
查看到相同的内容。
不同分支冲突的内容都被添加到被修改的文件中,此时需要手动解决冲突,用vim
打开该文件,去掉<<<<<<
等符号后,根据需要保留提交的 内容,然后git add
,git commit
提交。
如果出现cannot do a partial commit during a merge
1、提交全部:git commit -a
2、如果不想提交全部,可以通过添加-i
选项:git commit file/to/path -i -m "merge"
4、删除分支
完成合并后,不再需要某分支时,可以通过以下命令删除:
git branch -d branch-name
git branch -d
只能删除那些已经被当前分支合并的分支,如果要强制删除某分支,用git branch -D
5、撤销一个分支
通过以下命令,返回合并之前的状态。
git reset --hard [merge前的版本号]
5、git日志
1、查看日志
通过git log
命令显示所有提交,回车会逐步显示,输入q
退出
2、日志统计
如果用--stat
选项使用git log
,它会显示在每个提交中哪些文件被修改了,这些文件分别添加或删除多少行内容。
git log --stat
3、格式化日志
--pretty
参数可以使用若干表现格式,如oneline、short、medium、full、fuller、email、、raw
--graph
用来可视化提交图
4、日志排序
日志记录可以按不同的顺序来显示,如果你要指定一个特别的顺序,可以为git log
命令添加顺序参数。
指定--topo-order
参数,让提交按拓扑顺序来显示(就是子提交在它们的父提交前显示)
git log --pretty=format:"%h:%s" --topo-order --graph
也可以用--reverse
参数来逆向显示所有提交日志。