git config --global user.name "username"
git config --global user.email "email"
配置完成之后查看配置信息
git config --list
初始化之后,当前目录下会出现一个.git的目录,所有Git需要的数据和资源都存放在这个目录中。
如果需要从远程仓库克隆数据到本地仓库,需要执行 git clone url,如果没有初始化本地仓库直接使用 clone,Git 也会自动给我们初始化一个本地仓库。
以 opencv 为例,使用 https 请求下载
完成下载之后就可以在当前目录下看到从远程仓库 clone 下来的工程文件了,使用 cmake 对开源代码进行编译,就可以正常使用了。
注意:工程文件 clone 到本地仓库之后,对工程进行的所有修改都是在本地的,不会影响到远程仓库。
我们可以看到我们当前分支在 master 上面,并且没有任何提交记录。
git add filename 将修改后的单个文件添加到缓存区,git add . 将修改的所有文件添加到缓存区。
可以看到 test 已经添加到了缓存区,而 opencv 还在工作区。
对 test 进行修改
可以看到修改后的 test 与之前在缓存区 test 的差异是多了四行 hello Git.
-m 后面可以添加提交信息,是我们对修改部分的总结或者是相关说明。
最后 test 是文件名称,也可以 -a 直接提交全部文件。
再次执行 git diff 已经发现 test 已经没有未提交的差异,使用 cat test 可以看到已经 test 已经是修改后的内容了,使用 git status 查看文件状态已经从缓存区提交到了本地库。(注意:git 可以使用 linux 相关命令,本次提交还是在本地仓库提交)
新建文件 test_1 并添加到缓存区
这里我们使用了强制删除,删除之后在我们的工作目录中就不会再有该文件了,如果只是想把该文件移除缓存区,并且保留该文件,需要执行 git --cached 这条命令。
上面的操作我们都是在本地的 msater 分支上面进行的,而在实际开发中,我们都是从远程克隆工程到本地仓库(master 主分支),然后在 msater 分支上面再新建分支进行开发,这样的好处是,假如我们在这个分支上面开发导致整个工程崩坏,修复不了,我们就可以直接舍弃整个工程,重新在 master 上面新建一条分支进行开发,这也正是 git 分布式管理的强大之处。
创建新分支 git branch branch_name
切换到创建的新分支 git checkout branch_name
创建新分支并且切换到新分支 git checkout -b branch_name
查看所有分支并显示所有信息 git branch -a
删除分支 git branch -d branch_name (git branch -D branch_name 是强制删除)
首先我们需要切换到其他分支,在自己的分支是删除不了自己的。
合并分支的提交 git merge branch_name
在 dev_1 分支上面对文件进行修改然后进行提交到本地的 master 分支,在 master 分支上面使用合并分支提交的命令就可以对修改部分进行更新。
git log 查看所有的历史提交记录
git log --oneline 查看历史提交记录的简洁版本
git log --graph 查看历史提交记录的图形化显示
如果开发到了一个重要阶段,并希望永远记住那个特别的快照,就可以使用 git tag 给它打上标签。
git tag -a tag_name -m "add tag" 给当前日志打上标签 tag:v0.1
查看当前配置有哪些远程仓库 git remote
推送分支与数据到某个远程仓库 git push origin branch_name
如果当前分支存在多个远程仓库的话,我们可以使用 -u 来进行指定 git push -u origin branch_name
删除远程仓库 git rmote rm origin