git操作项目的大致步骤。
git init //初始化一个本地仓库。 git add . //添加文件 git commit -m '提交内容' //提交到本地仓库 git status //查看状态 变红是说明文件还没有add 变绿说明文件已经add 但是还没有commit 提交完之后就会显示没有文件可以提交了 git pull url master //拉取远程仓库的代码到master主分区 不写master则默认推送到master git push url master //推送本地的代码到远程仓库主分区
设置远程origin地址
git remote -v 查看远程origin git remote rm origin 删除远程origin git remote add origin xx.git //添加git地址
将本地的项目第一次提交到github
git remote add origin 远程仓库地址
git pull origin master --allow-unrelated-histories 后面加上 --allow-unrelated-histories
, 把两段不相干的 分支进行强行合并
git push origin master
添加变化
git add . //提交所有新增文件和变化文件,不包括被删除文件 git add * //功能同上 git add -u //提交被修改和被删除文件,不包括新文件 git add -A //提交所有变化 git add a.txt //提交a.txt //git add命令可以提交多次,在git commit之前,告诉git,把文件添加到仓库暂存区
分支
git branch dev //创建dev分支 git checkout dev //切换到dev分支 git checkout -b dev //-b参数表示创建并切换相当于 git branch dev 再 git checkout dev git branch //显示所有分支,当前分支前有 * 号 git merge dev //合并dev到主干(快进模式:直接将master分支指向dev的提交) git branch -d dev //删除分支 -D 强制删除
//使用下面两条命令来删除远程分支(任意一种就可以)
-
git branch -r -d origin/branch-name
-
git push origin :branch-name //branch-name是远程分支名
本地的dev分支推送到远程的分支上。
git push origin dev:dev //意思是将本地的dev分支推送到远程的dev分支上。如果没有远程的dev,就创建,者仅仅是第一次建立关系。一旦建立好之后,本地的再次推送就 git push origin dev 就ok了。
注意 还需要绑定一下远程地址的分支,如果不关联,你Git push 的时候 会提示你
$ git push
fatal: The current branch dev has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin dev
把本地的新分支,和远程的新分支关联
git push --set-upstream origin newbranch (!!!!!!newbranch 是远程分支的名字)
git branch -vv -- 查看远程分支的对应本地分支的关系
git push origin dev:master //意思是把本地的dev推送到远程的master分支。
拉取远程分支并创建本地分支
git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
git fetch //一般在远程新建一个分支的话,你直接查看是看不到的,要先执行这个命令,然后才能看到。
git branch -a // 查看所有的分支
git branch -r //查看远程分支
如何将分支指定的文件提交
场景:比如说dev分支,你想将dev分支上面的1.txt 文件合并到master分支上面。
切换到master分支
git checkout dev ./src/java2/1.txt //后面是相对路径
注意:这种会把合并的文件强制覆盖!!!!不推荐!!!!
如何指定将分支的commit合并
git log 查看commit提交得到 68dd8e579c65050be6238360ee1efee454a0e3d0 这类的数据
git cherry-pick 68dd8e579c65050be6238360ee1efee454a0e3d0 意思是合并这个分支
pull的时候出现 refusing to merge unrelated histories 错误
git pull origin master --allow-unrelated-histories
查看日志
git log //显示每一次提交的信息:作者、日期、hash、commit信息 git log --pretty=oneline //单行显示提交信息:hash、commit信息 git reflog //提交信息:hash、commit信息
版本控制
git reset --hard HEAD^ //仓库文件回退到上一commit版本
git reset --hard 35f69c //版本回滚到hash值35f69c开头的commit版本 特别注意:这个会让你本地的文件消失!!!!!!!!!!!!
第二种方法
先 git reflog --查看所有提交的信息
然后 git reset HEAD~2 --说明是退回到上面记录的2的版本 ,这个退回 你本地的文件不会消失 你只需要重新add就行。推荐这个!!!!!!!!!!1
推荐博客 :https://www.cnblogs.com/flowwind/p/4222247.html
======修改了文件,执行了add操作 但是没有执行commit操作
git reset HEAD a.txt //把暂存区中a.txt的修改撤销掉,放回工作区
=======修改了文件,但是还么有执行add操作
git checkout fileName //把修改的文件还原到修改之前
查看本地文件做了哪些修改
git diff 文件名
按 q 退出
如何解决failed to push some refs to git
可以通过如下命令进行代码合并【注:pull=fetch+merge] git pull --rebase origin master 此时再执行语句 git push origin master即可完成代码上传到github