(一)克隆代码(clone):将远程仓库代码克隆到本地仓库
克隆远程仓库某个分支
git clone -b 远程分支名称 https://github.com/master/master.git 本地文件名称
克隆远程仓库默认分支
git clone https://github.com/master/master.git
(二)检出代码(checkout):将本地仓库代码检出到工作区
创建新的分支并切换到这个分支
git checkout -b 分支名称
切换到某个分支
git checkout 分支名称
分支重命名
git branch -m 老分支名称 新分支名称
查看本地分支
git branch
查看远程分支
git branch -r
删除本地分支(必须切换到其他分支,才能删除这个分支)
git branch --delete 分支名称
删除远程分支
git push origin --delete 分支名称
(三)添加代码(add):将工作区代码添加到暂存区
查看代码中修改了哪些文件、新增了哪些文件
git status
修改的文件:添加文件到暂存区
git add ./test.cpp
新增的文件:强制增加文件到暂存区
git add -f ./test.cpp
添加所有文件到暂存区
git add *
添加所有文件到暂存区
git add .
将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件
git add -u .
将所有的已跟踪的文件的修改与删除和新增的未跟踪的文件都添加到暂存区
git add -A .
添加某个文件类型到暂存区
git add *.cpp
添加整个文件夹到暂存区
git add src/
删除文件
git rm ./test.cpp
(四)提交代码(commit):将暂存区代码提交到本地仓库
查看本地分支和远程分支的区别
git diff
查看本地分支和特定分支的区别
git diff origin/master
查看本地分支和远程分支的某个文件的区别
git diff ./test.cpp
将暂存区的代码提交到本地仓库
git commit -m “描述信息”
如何撤回commit?
HEAD^ 撤回 上一个版本
HEAD~1 撤回 上一个版本
HEAD~2 撤回 上两个版本
commit_id 撤回到 某个指定版本
(1)撤回提交到本地仓库的commit
第一步 获取要撤回到的commit ID
git log
第二步 撤回到历史commit
撤回上一个版本
git reset --soft HEAD^
撤回上一个版本
git reset --soft HEAD~1
撤回上两个版本
git reset --soft HEAD~2
撤回到 某个commit
使用 --hard 参数会抛弃当前工作区,暂存区,本地版本区的修改
git reset --hard commit_id
使用 --soft 参数会抛弃当前本地版本区的修改,但保留当前工作区和暂存区的修改,可以重新提交
git reset --soft commit_id
使用 --mixed 参数会抛弃当前暂存区和本地版本区的修改,但保留当前工作区修改,可以重新提交
git reset --mixed commit_id
(2)撤回提交到远程仓库的commit
第一步 获取要撤回的commit ID
git log
撤回上一个版本
git reset --soft HEAD^
撤回上一个版本
git reset --soft HEAD~1
撤回上两个版本
git reset --soft HEAD~2
撤回到 某个commit
使用 --hard 参数会抛弃当前工作区,暂存区,本地版本区的修改
git reset --hard commit_id
使用 --soft 参数会抛弃当前本地版本区的修改,但保留当前工作区和暂存区的修改,可以重新提交
git reset --soft commit_id
使用 --mixed 参数会抛弃当前暂存区和本地版本区的修改,但保留当前工作区修改,可以重新提交
git reset --mixed commit_id
第三步 将本地撤回到的commmit提交到远程仓库
git push origin HEAD --force
(五)拉取代码(pull):将远程仓库代码拉取到本地仓库(合master)
将远程仓库的主干分支(master分支)合并到本地分支
git pull origin master
如果产生冲突,如何处理?
两种情况:
(1)提交的代码与master有冲突
确认提交的代码没有问题,删除master的代码,保留提交的代码
(2)提交的代码与其他人提交的代码有冲突,其他人优先于你合了master
将其他人已经合到master的改动添加到提交的代码中
(六)推送代码(push):将本地仓库代码推送到远程仓库
将本地分支推送到远程分支(如果远程分支不存在,就创建一个新的远程分支)
git push origin 本地分支名称:远程分支名称
将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则新建这个远程分支。
git push origin 本地分支名称
如果本地分支和远程分支存在追踪关系,本地分支和远程分支都可以省略。将本地分支推送到origin主机上的对应分支。
git push origin
(七)master分支打tag
查看存在的tag
git tag
删除本地tag
git tag -d tag名称
删除远程tag
git push origin --delete tag tag名称
打tag
git tag -a tag名称 -m “描述信息”
推送tag
git push origin tag名称