git强制覆盖本地命令(单条执行):
git fetch --all && git reset --hard origin/master && git pullgit fetch —all
//只是下载代码到本地,不进行合并操作
git reset --hard origin/master //把HEAD指向最新下载的版本
使用强制push的方法(不建议使用,这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候): git push -u origin master -f
git add all 无论在哪个目录执行都会提交相应文件。可以提交未跟踪、修改和删除文件
git add . 只能够提交当前目录或者它后代目录下相应文件。 可以提交未跟踪和修改文件,但是不处理删除文件
git add —all 将删除操作提交至暂存区
rm 1.txt
git add --all
git status
https://gitee.com/all-about-git
Git 大全
想彻底把版本库的删除掉,先git rm,再git commit
第一种情况:的确要把test.txt彻底从版本库的删除掉,那么可以执行
git rm test.txt
git commit -m "remove test.txt”
文件被删除,且删除记录上传本地库
第二种情况:误删文件,想恢复,这时候还没有commit -m "remove test.txt",执行git checkout test.txt将文件恢复。如果执行完git commit -m "remove test.txt"后就不能用checkout恢复了,得用git reset --hard HEAD^
=================================================
一、代码上传
(1)git init : 初始化git仓库
(2)git add --all / git add . 添加本地文件到暂存区
(3)git commit -m “你的注释” 添加本地文件到版本库
(4)git remote add origin git@gitee.com:qq471754603/xiao.git 添加远程仓库地址
(5)git push origin master 向远程仓库推送代码
打开.git文件夹,vi config 添加
[branch "master"]
remote = origin
merge = refs/heads/master
推送代码时不用指定和合并分支
二、代码下载
git clone <远端git> <本地目录>
(1)直接克隆 :git clone git@gitee.com:qq471754603/xiao.git克隆远程代码
(2)抓取 :· git init 初始化git仓库
· git remote add origin git@gitee.com:qq471754603/xiao.git添加远程仓库地址
· git fetch origin master 抓取远程仓库代码(只有主支)
· git merge origin/master 合并到本地仓库
三、分支管理
git checkout -b dev :创建一个名叫dev的分支并切换到此分支
git branch 查看有几条分支
git checkout dev 切换到dev分支
git branch -m oldname newname 更换分支名称
git merge dev 合并分支(要切换到要合并它的分支上,如 :master)
git branch -d dev 删除当前分支(强制删除:-D)
四、暂存(隐藏)当前分支
git stash 隐藏当前分支,相当于暂存
git stash list 列所有stash
git stash apply 恢复暂存的内容
git stash drop 删除暂存区
多人合作
情况一:本地没有项目,我想克隆一个(包括主分支和次分支)
(1)项目克隆:git clone ....
(2)建立次分支:git checkout -b dev origin/dev
(3)本地分支和远程分支进行连接:git branch --set-upstream-to origin/dev dev
情况二:本地没有项目,我只想抓取远程次分支
(1)建立一个本地库文件夹(最好与远程一致)
(2)初始化本地仓库:git init
(3)建立本地与远程之间的连接:git remote add origin https://git.coding.net/ckq/dianshang.git
(4)抓取次分支:git fetch origin dev
(5)合并到本地:git merge origin/dev
git checkout -b branch-name origin/branch-name : 在本地创建和远程分支对应的分支
git push origin branch-name : 可以试图推送自己的修改;
git pull : 如果推送失败,则因为远程分支比你的本地更新,需要先用试图合并
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/dev dev。
五、版本回退
git reflog : 显示回退的id
git reset --hard commit-id 回到想要回退的版本
git reset --hard HEAD^^/git reset --hard HEAD~回退到上一个版本
git reset HEAD~5 撤销过去5个commit的命令,然后在添加提交
六、其他命令
(1)git --version 查看当前git版本
(2)git help --all 查看git命令
(3)git diff 查看当前工作区域版本库有哪些区别,修改了什么内容
(4)git status 查看仓库当前状态
(5)git log 查看提交的历史记录
git checkout -- <file> 撤销对文件的修改
(6)git log --pretty=oneline 当前记录在一行显示
(7)git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录
(8)git pull 更新本地仓库(拉取)
(9)git remote -v 查看远程信息库pull和fetch详细信息
(10)git branch -r查看远程分支
(11)git branch -a查看所有分支
(12)git push --force origin dev 强制推荐dev分支(rebase后的分支历史改变了,可能导致不兼容现象)
(13)git remote rm <repository>删除远程仓库
(14)git remote show origin查看远程仓库的信息
git config --global user.name "胡显胜"
git config --global user.email "471754603@qq.com"
设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:
git commit --amend --reset-author
.gitignore配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为版本管理带来很大的便利,以下是对于配置.gitignore的一些心得记录:
1)配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
此外,git 对于 .gitignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
2)示例说明
a)规则:fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
b)规则:/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
c)规则:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;