今天在拉取项目,完全不会使用git了,可见自己的笨拙。
1.拉取和上传项目
克隆项目:git clone 地址
新增远程仓库:git remote add origin 地址
拉取项目:git pull
查看远程连接:git remote -v
上传修改文件:git add . (git add 之前可以先pull一下,避免冲突)
撤销不想上传的文件:git reset <filename>
添加备注:git commit -m "备注"
推送:git push
恢复文件:通过
git checkout -- <file>
命令可以将指定文件恢复到上一次提交的状态。这将撤销对文件的所有本地修改。例如,要恢复名为"index.html"的文件,可以运行git checkout -- index.html
。
2.1.分支
超级详细的文章,强推
为了真正理解 Git 处理分支的方式,我们需要回顾一下Git是如何保存数据的。简单来说,Git 保存的不是文件的变化或者差异,而是一系列不同时刻的快照 。
当使用 git commit 进行提交操作时,Git 会先计算每一个子目录(本例中只有项目根目录)的校验和, 然后在 Git 仓库中这些校验和保存为树对象。随后,Git 便会创建一个提交对象, 它除了包含上面提到的那些信息外,还包含指向这个树对象(项目根目录)的指针。 如此一来,Git 就可以在需要的时候重现此次保存的快照。
git分支操作
创建分支的本质只是创建了一个可以移动的新的指针
查看分支:git branch -v
创建分支:git branch 分支名
切换分支:git checkout 分支名
git checkout -b 分支名 = git branch 分支名+git checkout 分支名
在开发过程中,以上的情况经常出现,这时就需要我们对多个分支进行合并。合并分支的基本语法为:git merge 分支名
此时,一般而言,合并后应该删除分支,因为你已经不再需要它了(
master
分支已经指向了同一个位置)。我们可以使用带-d
选项的git branch
命令来删除分支:git branch -d 分支名
2.2.分支管理
git branch
命令不只是可以创建与删除分支(-d
选项)。 如果不加任何参数运行它,会得到当前所有分支的一个列表:
master
分支前的 *
字符:它代表的是现处分支(也就是当前 head指针所指向的分支)。这意味着如果在这时候提交,master 分支将会随着新的工作向前移动。
如果需要查看每一个分支的最后一次提交,可以运行 git branch -v
命令