Git 基本操作流程

git clone url
拉取远程仓库的代码

git branch
查看分支列表和当前分支

git checkout origin 分支名称
检出某个分支的代码(或者说切换到某个分支), origin 是默认的远程版本库名称

git pull --rebase origin 分支名称
拉取最新的代码
git pull 相当于git fetch +git merge
git pull --rebase 相当于git fetch +git rebase
当本地代码的版本落后于远程仓库代码时,git pull将会把最新的修改直接拉下来于本地代码merge,且产生一个commit,也就是merge commit。而用git pull --rebase并不会额外产生一个merge commit,而是会将你的 commit附加到上一个 commit的结尾处。

git status
查看工作目录和暂存区的状态 可通过不同颜色文件名区分文件状态

git diff
执行 git diff 来查看执行 git status 的结果的详细信息。
主要有以下用法:
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff –stat

git add
将修改修改的文件添加到暂存区域
可用 git add 文件名 添加指定文件,
也可以用git add . 添加当前文件夹中所有改动的文件

git commit –m “注释”
主要是将暂存区里的改动给提交到本地的版本库

**git push origin 分支名 **
一般形式为 git push <远程主机名> <本地分支名> <远程分支名>
省略远程分支名表示将本地分支推送到与之存在追踪关系的远程分支
如果当前分支只有一个远程分支,则可以直接 git push

以上为提交代码的基本流程,此外,还有许多常用的命令:

1.查看日志版本
git log 命令列出历史提交记录
git log --oneline 查看历史记录的简洁的版本
git log --oneline --graph 查看历史中什么时候出现了分支、合并
tag 标签
为软件发布创建标签是推荐的。这个概念早已存在,在 SVN 中也有。你可以执行如下命令创建一个叫做 1.0.0 的标签:git tag 1.0.0 1< commit id的前 10 位字符>

2. stash
stash 相关命令应用场景:
1.某个分支的未提交的修改转移到另外一个分支上
此时可以将修改内容保存,然后切换分支再提取出来。

2.切换分支修改代码,但是不想放弃本分支做出的修改
此时可以将修改内容保存,然后切换分支,以后需要时再提取出来

3.当git 环境不干净,本地代码与远程仓库中代码有冲突,无法pull 拉取最新代码时。
先保存修改内容,然后拉取最新代码,再提取stash 记录,最后解决冲突并提交。
… …

git stash
会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。
通常使用 git stash save “xxx” ,此命令可以添加注释(xxx部分为注释)

git stash list
查看当前stash中的内容

git stash pop stash@{x}*
恢复存储的工作目录,同时删除这条stash记录,stash@{x} 为 stash记录的id

git stash apply stash@{x}
恢复存储的工作目录,但保留这条stash记录,stash@{x} 为 stash记录的id

git stash drop stash@{x}
删除 stash 记录,stash@{x} 为 stash记录的id

git stash clean
清空stash 记录

3.撤销、回滚提交
push到远程仓库之前的还原操作为撤销
(1).如果改动的文件还没有用 git add命令 提交到暂存区 。
撤销修改:
git checkout 文件名 撤销该文件的修改,或者git checkout . 撤销所有的修改

(2). 如果同时对多个文件执行了git add操作,但本次只想提交其中一部分文件。
将不需要提交的文件取消暂存:
git reset HEAD 文件名

(3). 如果文件执行了git add操作,但想撤销对其的修改
先取消暂存,然后撤销修改
git reset HEAD <文件名>
git checkout 文件名

(4).如果修改的文件已被git commit,但想再次修改而不想再产生新的Commit
提交的时候用 –amend 改写最近一次的commit而不是新加commit
git add sample.txt
git commit --amend -m"注释"

(5).已在本地进行了多次git commit操作,现在想撤销到其中某次Commit
git reset [–hard|soft|mixed|merge|keep] [commit|HEAD]
具体参数和使用说明 自行百度。

对远程仓库的代码进行还原操作为回滚

(1).回滚指定文件到指定版本
git log 查看指定文件的历史版本
git checkout 回滚到指定commitID

(2).删除最后一次远程提交
方式一:使用revert
git revert HEAD
git push origin master

方式二:使用reset
git reset --hard HEAD^
git push origin master -f
二者区别:
revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;
reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

(3).回滚某次提交
git log 找到要回滚的commitI
git revert commitID

(4).删除某次提交
git log --oneline
git rebase -i “”^

注意:需要注意最后的^号,意思是commit id的前一次提交
在编辑框中删除相关commit然后保存退出(如果遇到冲突需要先解决冲突)!
git push origin master –f

4.分支操作
1.新建分支
git checkout -b 分支名
这相当于执行下面这两条命令:
git branch分支名
git checkout分支名

2切换分支
git checkout 分支名

3.合并分支
git merge 分支名

4.删除分支
git branch -d 分支名

注意;当有多个分支时,许多操作都需要指定版本库名和分支名

本文只是对git的入门级指导,更深入的内容自行钻研。

猜你喜欢

转载自blog.csdn.net/Fickle_actor/article/details/85346780