1、git add 使用:
git add 文件 ,添加所有文件的话:git add .
注:add(可以新增新的文件, 也可以将更新的文件提交到仓库),也就是说添加、修改文件都用add
2、Git commit -m “备注”
git commit --amend 重新commit
3、git push 将提交代码提交到代码库
Git push origin HEAD:refs/for/master
4、代码回滚操作 git rever/reset
- git reset --soft (commit id) 跟上要回滚的commit id
这样就成功撤销了commit,如果想要连着add也撤销的话,–soft改为–hard(删除工作空间的改动代码)。 git reset
–soft 操作完之后,会把commit文件放回到待commit里边。 - git revert和git reset的区别就是revert 是将之前的提交反转(新增就删除),然后作为一次新的提交;reset commit_id是回滚到该commit_id下,该commit_id之后的提交都会删除。
- git revert -n commit_id ,若出现is a merge but no -m option was given
这是因为你revert的那个commit是一个merge commit,它有两个parent,
Git不知道base是选哪个parent,就没法diff,所以就抱怨了,所以你要显示告诉Git用哪一个parent。 - 则 git revert -n commit_id -m 1 这样就选parent 1,那么parent 1又是哪一个呢?
一般来说,如果你在master上merge branch_xxx,那么parent 1就是master,parent
2就是branch_xxx. - git reset HEAD
- git add.
- git commit -m “xxx”
- git push origin HEAD:refs/for/分支
5、删除文件/删除本地分支/删除远程分支
- 删除git文件:git rm xx.php 删除文件 ===> 然后走 git add ===> git commit -m
“” ===> git push - 删除本地分支:git branch -D 分支名
- 删除远程分支:git push origin –delete 分支名
6、Git branch 以及分支的用法:
git pull 取回远程主机某个分支的更新,再与本地的指定分支合并
-
获取当前以及远程分支信息:git branch -a
-
获取远程分支信息:git branch -r
-
获取当前分支信息:git branch
查看本次提交文件与上次的区别:git diff --color x.php
切换分支: git checkout 分支号 -
直接将其他分支的 commit_id 在当前分支上提交: git cherry-pick commit_id 这样就不用再在当前分支添加文件,提交。
==> 最后直接git push 就哦了,但是这个命令只是想当于 commit 需要合入才能diff. -
更新远程库到本地库: git fetch (后边可以选择分支) git fetch --help (帮助命令: xxxx
–help) -
本地创建分支: git branch 分支名称
-
本地创建分支并且切换分支: git checkout -b 分支名
-
删除本地分支:git branch -d 分支名
-
合并分支:git merge [name] ----将名称为[name]的分支与当前分支合并
-
将远程代码更新下来做对比合并:
(1)查看远程仓库:git remote -v
(2)从远程获取最新版本到本地: -
git fetch origin master
使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支 -
比较本地仓库与下载的temp分支 使用如下命令来比较本地代码与刚刚从远程下载下来的代码的区别:
7、git show用法
Gti show展示提交commit的代码。
git show --color
8、Git 的解决冲突以及更新代码
在本地仓库中,更新并合并代码
1、先git fetch origin 更新线上代码
2、git stash 将工作区的代码进行暂存
2、git rebase origin/master 将主干代码进行合并
4、依据提示打开、解决冲突代码
5、解决完之后 git add 文件 以及 git rebase --continue
6、Git push 代码
7、最后 git stash pop 将暂存的代码再取出来
9、Git 的gitconfig的配置
项目代码块git配置
10、Git pull 使用:
作用:取回远程主机某个分支的更新,再与本地的指定分支合并。
一句话总结git pull和git fetch的区别:git pull = git fetch + git merge
基本用法:
1、git pull <远程主机名> <远程分支名>:<本地分支名>
Eg: git pull origin master:brantest
将远程主机origin的master分支拉取过来,与本地的brantest分支合并。
Git pull origin maste 获取主干信息并且和当前本地分之合并。
11、git reset
是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除
p12、如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
此时可能会冲突,需要手动修改冲突;也有可能git自动merge了。修改过后再次pull,add,commit,push就可以啦
13、解决git pull 发生冲突的文件
Git checkout 回退文件,这个是将文件回退到最新文件,不过本地改的代码也不存在了。 直到git pull 成功呢
14、解决工作区的文件为添加到git
git clean -d -fx
即可。可能很多人都不明白-d,-fx到底是啥意思,其实git clean -d -fx表示:删除 一些 没有 git add 的 文件;
git clean 参数
-n 显示将要删除的文件和目录;
-x -----删除忽略文件已经对git来说不识别的文件
-d -----删除未被添加到git的路径中的文件
-f -----强制运行
git clean -n
git clean -df
git clean -f
15、git将add的文件去掉,拿下去
git reset HEAD 文件地址
执行完命令,就会放回到changed but not updated
16、git reflog
git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。
17.git删除未跟踪文件
删除 untracked files
git clean -f
连 untracked 的目录也一起删掉
git clean -fd
连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd