CODE.CHINA地址:https://codechina.csdn.net/about#
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
git clone
+刚刚的git链接git remote add
把它和 gitee的远程库关联,如下git remote add origin git@gitee.com:linxinfa/mytest.git
git remote add origin git@gitee.com:linxinfa/mytest.git
fatal: remote origin already exists.
git remote -v
origin git@gitee.com:linxinfa/mytest.git (fetch)
origin git@gitee.com:linxinfa/mytest.git (push)
git remote rm origin
git remote add origin git@gitee.com:linxinfa/mytest.git
cd my_way
进入这个文件夹里面git add -A
添加所有文件夹fatal: not a git repository (or any of the parent directories): .git
git init
命令生成.git文件git init #把当前目录变成git可以管理的仓库
git add readme.txt #添加一个文件,也可以添加文件夹
git add -A #添加全部文件
git rm test.txt #删除一个文件,也可以删除文件夹
git commit -a -m "some commit" #提交修改
git status #查看是否还有未提交
git log #查看最近日志
git reset --hard HEAD^ #版本回退一个版本
git reset --hard HEAD^^ #版本回退两个版本
git reset --hard HEAD~100 #版本回退多个版本
git remote add origin +地址 #远程仓库的提交(第一次链接)
git push -u origin master #仓库关联
git push #远程仓库的提交(第二次及之后)
分支操作 命令
创建分支 git branch <name>
创建叫name的分支,但仍然停留在当前分支。
删除分支 git branch -d <name>:参数为-D则为强制删除。
git push origin --delete <name> :删除远程仓库的叫name的分支,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支
git branch -dr <remote>/<branch-name>:没有删除远程分支,只是删除 git branch -r 列表中的追踪分支。一般只有git push命令可以修改远程仓库。
切换分支 git switch <name>
git checkout <name>
创建+切换分支 git switch -c <name>
git checkout -b <name>
上方两条命令一个意思:如果分支存在则只切换分支。不存在则创建叫name的分支,然后切换到该分支。相当于两条命令:git branch <name>,git checkout <name>
查看分支 git branch:查看本地分支,当前分支前面会标一个*号。
git branch -r:查看远程分支。
git branch -a:查看本地分支和远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话)。
git branch -vv:查看本地分支对应的远程分支。
重命名分支 git branch -m oldName newName
git branch <分支名>
,但是却报错了:报错原因就是当前没有 master 分支,无法新建分支。
可以使用以下命令查看当前分支:
git branch
git branch
这个命令后你会发现什么都没有输出,证明你还没有主分支新建 master 分支:
git 提交一次代码就会自动保存到 master 分支。
git checkout Dark
git add folder
git push origin Dark
不同分支的 commit 是不会产生冲突的,因为 commit 提交到的是当前分支的 本地库。
只有将分不同分支的本地库进行合并才会产生冲突。所以:
合并本地库会产生冲突
拉远程分支的代码也会产生冲突
两个人写同一个文件就可以
先提交的不会有冲突,后拉取的会有冲突
同一个机器,不同分支,写同一个文件,也可以产生冲突
A 、B 两分支操作同一个文件的同一行代码。
A 分支 commit
B 分支 commit
B 合并 A,就会产生冲突
git pull origin xxx
分支名称git add .
这里可能会报一个错:warning: LF will be replaced by CRLF in folder/file2.txt. The file will have its original line endings in your working directory
git config --global core.autocrlf false
原因是路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题
git commit -m "注释信息...."
+ git push origin master
git reset --hard head
我叫Dark
,Light分支里面的文件写的是:我叫Light
,然后我们目前是Dark分支,我们修改了这个文件里面的内容为:我是新一代Dark!,然后我们add+commit+push到Dark分支,然后我们切换到Light分支,此时要是直接merge Dark就会发现你的文件内容从我叫Light
变成了我是新一代Dark!
,因为这个git是会区分主次的!你前面的修改了然后推送成功就会变成主!其他的人现在只要merge你的分支都会变成你的样子,然后我们怎样知道冲突呢?那就是,回到刚刚Dark分支已经add+commit+push这一步,然后我们还是切换到Light分支,此刻我们不要去马上merge合并,因为这样就会成功把现在为主的master代码覆盖过来,我们要先修改这个test.txt文件,修改完了以后我们也去在Lignt分支add+commit+push,然后一切完了以后我们再来merge Dark就会出现Dark|MERGING冲突报错!因为现在Light也去Push了也成了所谓的主,此时就有两个主了,就会报错了!然后你现在切换到Dark分支立马执行merge Light
,你会发现同样是冲突错误!那么这个怎么解决呢?我前面说的使用git reset --hard head 知识回滚,并不是解决问题的真正方法,真正方法就是在两个王的基础上培养一个王中王!那就是在MERGING错误的时候你找到并打开错误文件,会有这样的样子:<<<<<<< HEAD和=======中间的是你自己的代码,
======= 和>>>>>>>中间的是其他人修改的代码
假如我当前本地是主分支,和另一个分支second一模一样,然后我在主分支新建了一个one.txt文件,我add➕commit后,我push origin second,而不是push origin master ,然后我checkout到second分支后我pull发现新文件并没有过来,只有merge master才可以过来,那么我就好奇我在push的时候push origin 后面加的这个远程仓库好像并没有什么区别,这是为什么呀
git push 实际上是 将你的当前分支推送到 远程同名分支
git push origin master 实际上是将你的本地master分支推送到远程的master分支,不管你当前在哪个分支上,所以 你的 git push origin second 只是将你的本地 second 分支推送到远程second分支,而不是将你本地的master分支推送到远程的master分支
git push origin master:second 才是将你的本地master分支推送到远程的second分支
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/justleavel/article/details/121227163
内容来源于网络,如有侵权,请联系作者删除!
git clone
+刚刚的git链接cd my_way
进入这个文件夹里面git add -A
添加所有文件夹git init
命令生成.git文件git branch <分支名>
,但是却报错了:git branch
这个命令后你会发现什么都没有输出,证明你还没有主分支git checkout Dark
git add folder
git push origin Dark
git pull origin xxx
分支名称git add .
这里可能会报一个错:git config --global core.autocrlf false
git commit -m "注释信息...."
+ git push origin master
git reset --hard head
我叫Dark
,Light分支里面的文件写的是:我叫Light
,然后我们目前是Dark分支,我们修改了这个文件里面的内容为:我是新一代Dark!,然后我们add+commit+push到Dark分支,然后我们切换到Light分支,此时要是直接merge Dark就会发现你的文件内容从我叫Light
变成了我是新一代Dark!
,因为这个git是会区分主次的!你前面的修改了然后推送成功就会变成主!其他的人现在只要merge你的分支都会变成你的样子,然后我们怎样知道冲突呢?那就是,回到刚刚Dark分支已经add+commit+push这一步,然后我们还是切换到Light分支,此刻我们不要去马上merge合并,因为这样就会成功把现在为主的master代码覆盖过来,我们要先修改这个test.txt文件,修改完了以后我们也去在Lignt分支add+commit+push,然后一切完了以后我们再来merge Dark就会出现Dark|MERGING冲突报错!因为现在Light也去Push了也成了所谓的主,此时就有两个主了,就会报错了!然后你现在切换到Dark分支立马执行merge Light
,你会发现同样是冲突错误!那么这个怎么解决呢?我前面说的使用git reset --hard head 知识回滚,并不是解决问题的真正方法,真正方法就是在两个王的基础上培养一个王中王!那就是在MERGING错误的时候你找到并打开错误文件,会有这样的样子: