一整个git常用流程:
PS1:(1)、(2)任选其中之一拉取仓库,都可以,其余的按顺序执行(5)、(6)不是必须执行的。
PS2: git checkout
dev可以从远程仓库拉取dev分支代码到本地,也可以用来切换本地其他分支,注意,这个过程会更换head区的内容,有一定的危险性,可能导致代码写错分支!慎用!PS3: git checkout -b dev则可以用来新建本地分支
以上PS2/3提示不包含在开发常用步骤中,请根据自己的场景,选择使用
(1)指定拷贝并且连接该仓库的dev分支,下次提交代码就不用 git remote add origin url了
git clone -b dev http://code.xxxxx.com.cn/xxxx/xxxx.git
(2)拉取整个仓库的所有分支,并且连接远程仓库
git fetch http://code.xxxxx.com.cn/xxxx/xxxx.git
(3)暂存本地修改,可以在需要回滚测试时使用,通常提交代码前,需要拉代码,需要暂存本地修改,防止本地代码因异常操作被覆盖
git stash
(4) 拉取代码
git pull
(5)git status命令可以让我们时刻掌握仓库当前的状态,有哪些文件有变更,但是它不提供查看文件被修改的内容
git status
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
(6)git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以查看文件具体改变了哪些内容
git diff
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.
(7)恢复最近一次的暂存区内容
git stash pop
(8)在这一步,我们需要观察拉取代码,并且恢复暂存区后有没有出现冲突conflict
举个例子,可以在vscode上的目录中,观察到,有冲突的文件名前会出现紫色的圆球
(9)由本地工作区添加到stage区,使用git add * 或者git add . (这一步骤会默认你已经将冲突解决,会清除冲突断点)
git add *
(10)由stage区提交到head区
git commit -m "feat: 提交了点什么的信息备注"
(11)推送到远程仓库
git push 或者指定推送的分支 git push -b dev