1、克隆远程仓库到本地 (适用于已经存在的代码仓库)
git clone https:XXXX.git
区分仓库地址前缀 https 和 ssh:
非ssh:克隆和推送/下载时需要输入密码
ssh:需要提前在仓库托管服务器(码云、github、isource配置本机ssh公钥,不需要输入密码)
拉取远程分支到本地 (可选) (master分支在克隆仓库之后默认拉取)
将远程分支下载到本地 + 远程分支关联到本地分支
git fetch origin 远程分支名:本地分支名 + git branch --set-upstream-to=origin/远程分支名 本地分支名
等价于:
git checkout -b 本地分支名 origin/远程分支名
接下来就可以愉快的写代码了,修改完代码之后
2、添加修改文件到缓存 (添加需要git追踪的文件)
git add .
也可以添加指定文件到缓存
git add 指定文件
从缓存中删除文件 (可选) (git add 的逆操作)
git rm -r --cached .
也可以添加指定文件到缓存
git rm -r --cached 指定文件
3、将缓存添加到本地仓库 (到这一步才真正把修改保存下来,相当于游戏中的存档)
git commit -m “提交描述消息”
注意使用双引号
4、推送当前分支到远程
git push origin HEAD:远程分支名
5、合并远程分支到本地
git pull origin 远程分支名:本地分支名
若当前分支已经关联远程分支,则只需要git pull
上述五步操作即可完成大多数git克隆、推送、拉取合并的需求,下面更新一些其他操作
6、使git追踪空文件夹
在空文件夹中添加文件.gitkeep
git默认不会追踪空文件夹,即你项目中的空文件夹不会被上传到远程
7、添加忽略文件
在项目根目录下添加文件.gitignore
在.gitignore添加你需要忽略的文件,使用准正则匹配来标定文件
查看匹配规则
忽略文件只会在你 git add 时生效,所以你在添加忽略文件之前,如果把文件已经添加到缓存中,则在本次提交中,该文件不会被忽略,可以通过上文描述的 git rm 来删除缓存中的文件
8、版本回退
最方便的回退就是回退到某一次的commit,也就是上文提到的存档,这个存档可能是你本人提交的,也有可能是别人提交到远程然后你拉取下来的
查看可回退的存档,的版本id和作者等信息
git log
回退到上一次存档
git reset --hard HEAD^
每添加一个^则表示多回退一次版本
回退到指定版本
git reset --hard 版本ID
9、删除未被追踪的文件
未被追踪是指没有加到git代码管理中的文件
git clean -fdx
10、撤回所有未被commit的文件
这里分两种情况
1、文件修改后未被git add暂存
git checkout .
2、文件被修改之后已经被git add暂存
git reset
等价于git rm --cached -r .
git checkout .
所以对于像修改文件,如果我们都不想要了,回到上一次提交的状态,只需要执行下面三行命令
git reset
git checkout .
git clean -fdx
Extra
1、git pull 和 git fetch 的区别:
git pull 是拉取远程分支的同时,将远程和本地的分支进行合并,相当于git fetch + git merge
git fetch 是单纯的将远程分支下载到本地分支,当本地分支为空时,git pull 等价于git fetch
2、码云(gitee)、github、isource的区别:
三者都是基于git的代码托管仓库,属于独立的服务器,使用前都需要下载git