git的使用
相关git命令操作
https://www.cnblogs.com/sundaysandroid/p/13441529.html
1.在命令行中,输入“git init”,使Test文件夹加入git管理;
2.输入“git add .”(不要漏了“.”),将Test文件夹全部内容添加到git。
3.输入“git commit -m "first commit"”(“git commit -m "提交信息"”
)
4.输入“git remote add origin https://github.com/shench5612390/Test.git”(git remote add origin 你自己的https地址),连接你的guthub仓库。
5.输入“git push -u origin master”,上传项目到Github。这里会要求输入Github的账号密码,按要求输入就可以。
如果重复提交错误
最后找到解决办法如下:
1、先删除远程 Git 仓库
$ git remote rm origin
2、再添加远程 Git 仓库
$ git remote add origin git@github.com:FBing/java-code-generator
如果执行 git remote rm origin 报错的话,我们可以手动修改gitconfig文件的内容
$ vi .git/config
把 [remote “origin”] 那一行删掉就好了。
1 git 配置
git config --global user.name “用户名”
git config --global user.email “邮箱”
2 生成公钥私钥
#ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
一路Enter下去,将生成的公钥填在码云上
#cat ~/.ssh/id_rsa.pub
3建立git仓库
在你的项目文件夹下执行git命令
git init
4 将项目文件添加到仓库中
git add .
5 将add的文件commit到仓库
git commit -m '备注'
6 将本地仓库关联到码云上
git remote add origin git@gitee.com:shiqingqing/test.git
7 上传码云前要先pull 下
git pull origin master --allow-unrelated-histories
8 最后一步 上传代码到码云仓库
git push -u origin master
1.用git pull来更新代码的时候,遇到了下面的问题:error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.php Please, commit your changes or stash them before you can merge. Aborting
出现这个问题的原因是其他人修改了xxx.php并提交到版本库中去了,而你本地也修改了xxx.php,这时候你进行git pull操作就好出现冲突了,解决方法,在上面的提示中也说的很明确了。
保留本地的方式修改(强烈推荐,还有一种是直接拉取服务器的(不推荐使用就不写了),这样你本地修改的代码的,就会舍弃,相当于你写的代码直接没,你还的重新写)
步骤如下:
通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。
git stash
git pull
git stash pop
- 第一个问题
git remote add origin**************
fatal: remote origin already exists.(报错远程起源已经存在。)
上网查了下,有很多小白遇到过这个问题,以下是网上摘取的解决办法,
解决办法如下:
1、先输入 git remote rm origin
2、再输入 git remote add origin**************
这样就不会报错了!
- 第二个问题
git remote add origin******
The authenticity of host 'github.com ' can't be established(无法建立主机“github.com”的真实性)
这是由于你的git地址采用了ssh方式,切换为https方式即可,也可能是你的仓库地址不对,可以用命令先查看一下:
git remote -v
如果跟你的github地址不一样,那就去你的github上复制一下仓库地址
然后在终端中输入:
git remote set-url origin https://github.com/yourname/learngit.git (这个是你的复制的仓库地址)
最后再push下就可以了!
git push origin master
git pull origin master
这时候会提示自动合并失败,README.md文件文件存在冲突,报错如下
2、解决冲突:本地打开README.md文件,会出现如下错误
“<<<<<<< HEAD”到“=======”是你本地改动的内容,“=======”到 “>>>>>>> 2f3ba214fb"之间是gitee改动内容。
选择自己要保存的代码内容,删除=======和>>>>>>>符号
最后执行
git add README.md
git commit -m '解决README.md冲突'
git branch --set-upstream 本地关联远程分支
最近使用git pull的时候多次碰见下面的情况:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> release
其实,输出的提示信息说的还是比较明白的。
使用git在本地新建一个分支后,需要做远程分支关联。如果没有关联,git会在下面的操作中提示你显示的添加关联。
关联目的是在执行git pull, git push操作时就不需要指定对应的远程分支,你只要没有显示指定,git pull的时候,就会提示你。
解决方法就是按照提示添加一下呗:
git branch --set-upstream-to=origin/remote_branch your_branch
其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。
Updates were rejected because the tip of your current branch is behind
1.使用强制push的方法:
$ git push -u origin master -f
这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。
2.push前先将远程repository修改pull下来
$ git pull origin master
$ git push -u origin master
3.若不想merge远程和本地修改,可以先创建新的分支:
$ git branch [name]
然后push
$ git push -u origin [name]
问题
1、本地初始化了git仓库,放了一些文件进去并进行了add操作和commit提交操作;
$git add -A
$git commit -m "start 2018-06-06"
2、github创建了git仓库并建立了README文件;
3、本地仓库添加了github上的git仓库作为远程仓库,起名origin;
$git remote add origin https://github.com/tielemao/TielemaoMarkdown
4、问题来了,本地仓库在想做同步远程仓库到本地为之后本地仓库推送到远程仓库做准备时报错了,错误如下:
fatal: refusing to merge unrelated histories
(拒绝合并不相关的历史)
解决
出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。
查阅了一下资料,发现可以在pull命令后紧接着使用--allow-unrelated-history选项来解决问题(该选项可以合并两个独立启动仓库的历史)。
命令:
$git pull origin master –allow-unrelated-histories
以上是将远程仓库的文件拉取到本地仓库了。
紧接着将本地仓库的提交推送到远程github仓库上,使用的命令是:
$ git push <远程主机名> <本地分支名>:<远程分支名>
也就是
$git push origin master:master
提交成功。
pull
git pull 命令基本上就是 git fetch 和 git merge 命令的组合体,Git 从指定的远程仓库中抓取内容,然后马上尝试将其合并进你所在的分支中。
从远程仓库中获得数据,可以执行:
$ git fetch [remote-name]
这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
但是注意的是 git fetch 并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。
如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。
由于fetch命令后还要再做一步merge命令的操作,所以使用 git pull 命令来自动的抓取然后合并远程分支到当前分支。 (相当于一次执行fetch加merge命令)这可能会是一个更简单或更舒服的工作流程
git合并分支(一看就懂)
假如我们现在在dev分支上,刚开发完项目,执行了下列命令:
git add .
git commit -m '提交的备注信息'
git push -u origin dev
想将dev分支合并到master分支,操作如下:
- 1、首先切换到master分支上
git checkout master
- 2、如果是多人开发的话 需要把远程master上的代码pull下来
git pull origin master
//如果是自己一个开发就没有必要了,为了保险期间还是pull
- 3、然后我们把dev分支的代码合并到master上
git merge dev
- 4、然后查看状态及执行提交命令
git status
On branch master
Your branch is ahead of 'origin/master' by 12 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
//上面的意思就是你有12个commit,需要push到远程master上
> 最后执行下面提交命令
git push origin master
- 5其他命令
更新远程分支列表
git remote update origin --prune
查看所有分支
git branch -a
删除远程分支Chapater6
git push origin --delete Chapater6
删除本地分支 Chapater6
git branch -d Chapater6
git合并代码
全局修改用户名和email,git config user.name和git config --global user.email