git常用命令
dev 分支的代码)git clone --branch dev https://github.com/username/repository.git
①git status:命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。git status不显示已经commit到项目历史中去的信息。看项目历史的信息要使用git log.
②git add 命令可将该文件添加到暂存区。
添加一个或多个文件到暂存区:
git add [file1] [file2] ...
添加指定目录到暂存区,包括子目录:
git add [dir]
添加当前目录下的所有文件到暂存区:
git add .
③git commit -m 'msg'
主要是将暂存区里的改动给提交到本地的版本库。
④git push
命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相仿。
如推送到远程dev分支:git push origin dev
git push <远程主机名> <本地分支名>:<远程分支名>
⑤git log 查看提交历史 /或者使用git reflog查看
⑥git reset --hard 回退的版本
git提交失败时,使用git reset --soft HEAD~1将文件恢复到待commit状态,可以重新提交
如果你不想保留这些本地提交,可以将它们丢弃:
git reset --hard HEAD
这将重置当前分支到最近一次提交的状态(丢弃所有未提交的更改和提交)。
⑦git pull命令作用:从另一个存储库或本地分支关联的远端分支获取最新代码,并与本地代码资源整合。git pull命令执行过程:取回远程主机某个分支的更新,再与本地的指定分支合并(可能存在需手动解决的冲突)。
使用语法
git pull [options] [<repository> [<refspec>…]]
描述
将远程存储库中的更改合并到当前分支中。在默认模式下,git pull是git fetch + git merge FETCH_HEAD的简写版。
更准确地说,git pull使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前分支中。 若使用--rebase,它运行git rebase而不是git merge。
查看本地和远程分支
git branch -a
如果已经有本地分支
直接输入命令
git checkout 20221120dev
切换到本地为20221120dev的分支
创建并切换到新的分支(切换到新的分支前,记得commit当前分支的代码)
git checkout -b 2023dev
⑧如果你在当前分支上做了一些本地更改(包括已提交但未推送的更改),并尝试切换到另一个分支时,Git 会提示你有未提交的更改。此时,Git 会防止切换,因为切换可能会导致冲突。
解决方法:
- 使用
git stash暂存当前更改:
这会将你当前工作目录的更改保存到一个临时栈中,你可以随时恢复它们。git stash - 然后切换分支:
git checkout <target-branch> - 如果需要恢复暂存的更改,可以使用:
git stash pop
示例
以下是一些示例 -
$ git pull <远程主机名> <远程分支名>:<本地分支名>
比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样 -
$ git pull origin next:master
如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:
$ git pull origin next
上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再执行git merge。
在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。
Git也允许手动建立追踪关系。
$ git branch --set-upstream master origin/next
上面命令指定master分支追踪origin/next分支。
如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。
$ git pull origin
上面命令表示,本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。
如果当前分支只有一个追踪分支,连远程主机名都可以省略。
$ git pull
上面命令表示,当前分支自动与唯一一个追踪分支进行合并。
如果合并需要采用rebase模式,可以使用–rebase选项。
$ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
git fetch和git pull的区别
- git fetch:相当于是从远程获取最新版本到本地,不会自动合并。
以上命令的含义:
- 首先从远程的
origin的master主分支下载最新的版本到origin/master分支上 - 然后比较本地的
master分支和origin/master分支的差别 - 最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。
git pull命令作用:从另一个存储库或本地分支关联的远端分支获取最新代码,并与本地代码资源整合。git pull命令执行过程:取回远程主机某个分支的更新,再与本地的指定分支合并(可能存在需手动解决的冲突)。
使用语法
git pull [options] [<repository> [<refspec>…]]
描述
将远程存储库中的更改合并到当前分支中。在默认模式下,git pull是git fetch + git merge FETCH_HEAD的简写版。
更准确地说,git pull使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前分支中。 若使用--rebase,它运行git rebase而不是git merge。
示例
以下是一些示例 -
$ git pull <远程主机名> <远程分支名>:<本地分支名>
比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样 -
$ git pull origin next:master
如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:
$ git pull origin next
上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再执行git merge。
在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。
Git也允许手动建立追踪关系。
$ git branch --set-upstream master origin/next
上面命令指定master分支追踪origin/next分支。
如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。
$ git pull origin
上面命令表示,本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。
如果当前分支只有一个追踪分支,连远程主机名都可以省略。
$ git pull
上面命令表示,当前分支自动与唯一一个追踪分支进行合并。
如果合并需要采用rebase模式,可以使用–rebase选项。
$ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
git fetch和git pull的区别
- git fetch:相当于是从远程获取最新版本到本地,不会自动合并。
以上命令的含义:
- 首先从远程的
origin的master主分支下载最新的版本到origin/master分支上 - 然后比较本地的
master分支和origin/master分支的差别 - 最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。

浙公网安备 33010602011771号