问:github怎么入门?
答:
安装git,一直点‘下一步’
任意打开一个文件夹,右键‘Git Bash Here’
ssh-keygen -t rsa -C "3114617379@qq.com"(这里你要改成自己的账号)
秘钥地址:C:\Users\YGDY.ssh\id_rsa.pub
上github,
git config --global user.name "liuyeqing"
git config --global user.email "3114617379@qq.com"
git clone git@github.com:liuyeqing/test3.git,git clone的地址用'Clone with SSH'
下面是提交文件到git上的操作:
1.git add hello1.txt(将‘hello1.txt’这个文件从工作目录添加到暂存区)
2.git commit -m "我是注释"(提交的注释写在双引号里,注释用来告诉其他开发者,我改了什么东西)
注意,git commit -m后面的提交信息中,不能出现<>字样,可能它会把这2个符号当作文件,然后显示:
3.git push:提交
问:怎么新建一个git分支?
答:https://blog.csdn.net/w15321271041/article/details/80622044
问:怎么看git上的代码跟本地代码有没有区别?
答:git status
问:git遇到冲突怎么解决?
答:https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344
git报错:
解决方案:
原文链接:https://blog.csdn.net/xiaomajia029/article/details/91378981
git教程:https://github.com/EmonCodingBackEnd/backend-tutorial/blob/master/tutorials/Git/GitInAction.md
切换分支:
git checkout 新分支名
查看stash里有没有文件,其中,‘stash@{0}’是stash的编号,如果要拿到stash里的文件,就‘git stash pop stash@{0}’
问:git pull以后有几个绿色+号,几个红色-号,这是什么意思?
答:就是说,新增了一些代码,又删除了一些代码,加号越多表示新增的代码越多,减号越多表示删除的代码越多,不过这个没关系,只要不冲突就行
问:怎么查看当前版本和上一个版本有哪些改动?
问:git stash list,发现stash里有我刚刚提交的信息,为什么?
答:因为提交代码以后,本来是要git stash list的,忘记敲list了,git stash,就把刚刚提交的东西放在暂存里了,这时可以删除stash
问:在hotfix分支上,修改了代码,提交了,然后我又改了develop分支的代码,接着后端把hotfix分支合并到develop上了,我在develop分支git pull时发生冲突,如何解决?
答:由于之前我改的代码很少,只是复制了几行代码出来,改了几个文字,我就去github上把线上develop分支上的文件复制下来了
在develop分支设置了暂存以后,去hotfix分支改代码,在hotfix分支改完代码以后,回到develop分支后的第1件事就是恢复暂存,如果还没有恢复暂存就修改文件,再恢复暂存,可能就恢复不了暂存了,这时只能删除暂存的内容了
问:把分支1的暂存不小心恢复到了分支2时,怎么处理?
答:放弃被恢复掉的内容,确认暂存还在,然后切换到对应分支恢复
问:‘放弃被恢复掉的内容’,可以用命令行来实现吗?还是只能手动删除那些恢复的暂存?
答:根据提示的命令
命令行的意思:
git fetch:是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git merge:把本地代码与线上代码合并
git pull:从线上更新代码(git pull其实是git fetch和git merge的合并写法)
git clone:从线上复制一份代码到本地
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -A:与git add .类似,但是会包括被删除的文件
git add src/:预备提交src文件夹下的文件
git commit -m "":提交注释
git commit -am "注释":git add和git commit二合一
git push:把代码推送到服务器
git stash drop stash@{0} :这是删除第一个暂存区队列
git restore src:清除src文件夹下的修改
问:develop修改了代码,不小心从develop直接切换到了hotfix分支了,怎么办?
答:切回develop,把修改部分暂存一下,执行‘
问:git pull的时候,出现merge提示,怎么办?
答:
解决完冲突以后,想要切换分支,怎么办?
要git add,再git commit,再git push,这时可以切换分支
方案2:强制merge,这是领导推荐的,但是我没用过
git切换分支前,要么提交好代码、要么备份代码,最好是提交代码,切换分支前,不要依赖stash,因为放在stash里,切换分支回来以后,没有马上把stash去pop出来就改,再pop的话,就会冲突
问:线上有'lyq'这个分支,但是我git checkout lyq时,报错‘error: pathspec 'lyq' did not match any file(s) known to git.’,怎么回事?
答:先git fetch origin --prune,再git checkout lyq就行了,之前本地没有lyq这个分支
问:git add all和git add .有什么区别
答:git add all可以提交未跟踪、修改和删除文件。
git add .可以提交未跟踪和修改文件,但是不处理删除文件。
问:git怎么恢复到修改代码之前的状态?
答:git log,拿到最近版本的id,
再git reset --hard b7dff9b64496514881fd66214ecb00dc38cf4024(b7dff9b64496514881fd66214ecb00dc38cf4024就是最近版本的id)
git checkout -b xxx就是在当前分支上新建一个xxx的分支
git checkout -d xxx就是在当前分支上删除xxx分支
问:我现在在dev分支上,要先到dev-lyq分支上,把dev分支放到dev-lyq分支上,再把dev-ljq分支的代码放到dev-lyq分支上,怎么弄?
答:git checkout dev-lyq,再git merge dev,再git pull origin dev-ljq,如果这时冲突了,就git fetch,再git merge dev,这时如果有问题,就git commit -m "解决冲突",再git merge dev,再git pull,再git pull origin dev-ljq