git config --global user.name 用户名
git config --global user.email 用户邮箱
#查看配置
git config --list
#本地初始化git仓库
git init
注意:初始化之后一定要commit一次后方可进行下面操作,如下为commit操作
touch readme.md
git add .&git commit -m valid
值得注意的是,倘若git项目下没有任何文件可以commit,那么这样子执行也是没有用的,所以我上面touch了一个文件,估计是初始的master对象为空无法根据master去创建新分支。究其原因,是由于刚创建的git仓库默认的master分支要在第一次有效的commit之后才会真正建立,否则就像你声明了个对象但没初始化一样。
注意:当你git init后即使显示你在master分支,但实际上你git branch -a后并没有找到master分支,可能是缓存的原因,可以git checkout master来切换到master分支,即可解决问题
将本地仓库连接远程仓库之前首先需要在自己的GitHub上创建一个study仓库
然后把本地的study仓库与远程仓库关联一下(请注意,一个本地仓库是可以关联多个远程仓库的)
#这里使用ssh连接为例,当然也可以使用http连接
git remote add origin [email protected]:ReturnTmp/study.git
#查看远程仓库fetch和push地址
git remote -v
#最后查看本地分支和远程分支关联情况
git branch -vv
注意:在远程创建了一个新的分支dev,但是我在本地使用命令git branch -r查看远程的所有分支,没有这个新分支,我们需要去更新一下远程仓库在本地仓库的缓存,使用git fetch origin或者git remote update origin --prune命令更新,然后再查看git branch -r,就能看到更新啦
#查看文件工作区修改的状态
git status -s
#把工作区的文件放到暂存区
git add . //将本目录下全部文件放入暂存区
git add 文件名 //放单个文件或文件夹
git add -A //一次性的把仓库中的文件进行上传到暂存区
#暂存区的文件添加到git仓库
git commit -m 消息
#查看commit日志
git log
git log详细命令:git log 命令详解_RollingPin的博客-CSDN博客_git log命令详解
有关分支的博客:git基础命令:分支命令详解_linux小百的博客-CSDN博客
git commit -am '修改hello文件'
#等价于git add hello && git commit -m '修改hello文件'
注意:使用的前提是hello文件曾经被add过,也就是处于tranced状态
可以直接使用命令 git reset HEAD
这个是整体回到上次一次操作
绿字变红字(撤销add)
如果是某个文件回滚到上一次操作: git reset HEAD 文件名
红字变无 (撤销没add修改)
git checkout -- 文件
由于一个本地仓库是可以关联多个远程仓库的,因此,可以设置多个「别名」分别指向不同的远程仓库(比如一个 GitHub、一个 GitLab、一个 Gitee),然后通过别名的方式方便、快速地拉取某个远程仓库的代码或者将代码推送至某个远程仓库。
# 添加 github 别名
$ git remote add github [email protected]:toFrankie/repo-demo.git
# 添加 gitlab 别名
$ git remote add gitlab [email protected]:toFrankie/repo-demo.git
# 添加 gitee 别名
$ git remote add gitee [email protected]:toFrankie/repo-demo.git
查看本地仓库关联的远程仓库信息,可以在 .git/config
文件或通过 git remote -v
命令查看。
添加远程分支后可以使用如下命令关联本地分支:
git branch --set-upstream-to=origin/master master(前面origin/master为远程分支名,后面master为本地分支名)
一般我习惯先删后加的方式,如下
git remote rm origin //删除现在的仓库地址
git remote add origin url //url为你要改的新地址
相关资料:细读 Git | 让你弄懂 origin、HEAD、FETCH_HEAD 相关内容 - 简书