git

问:github怎么入门?
答:
安装git,一直点‘下一步’

image.png

任意打开一个文件夹,右键‘Git Bash Here’
image.png

ssh-keygen -t rsa -C "[email protected]"(这里你要改成自己的账号)
image.png

秘钥地址:C:\Users\YGDY.ssh\id_rsa.pub
上github,
image.png

image.png

git config --global user.name "liuyeqing"
git config --global user.email "[email protected]"
image.png

git clone [email protected]:liuyeqing/test3.git,git clone的地址用'Clone with SSH'
下面是提交文件到git上的操作:
1.git add hello1.txt(将‘hello1.txt’这个文件从工作目录添加到暂存区)
2.git commit -m "我是注释"(提交的注释写在双引号里,注释用来告诉其他开发者,我改了什么东西)
注意,git commit -m后面的提交信息中,不能出现<>字样,可能它会把这2个符号当作文件,然后显示:
image.png

3.git push:提交

问:怎么新建一个git分支?

答:https://blog.csdn.net/w15321271041/article/details/80622044

问:怎么看git上的代码跟本地代码有没有区别?
答:git status

问:git遇到冲突怎么解决?
答:https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344

git报错:

image.png

解决方案:
原文链接:https://blog.csdn.net/xiaomajia029/article/details/91378981
image.png

git教程:https://github.com/EmonCodingBackEnd/backend-tutorial/blob/master/tutorials/Git/GitInAction.md

切换分支:
git checkout 新分支名

image.png

查看stash里有没有文件,其中,‘stash@{0}’是stash的编号,如果要拿到stash里的文件,就‘git stash pop stash@{0}’

问:git pull以后有几个绿色+号,几个红色-号,这是什么意思?


image.png

答:就是说,新增了一些代码,又删除了一些代码,加号越多表示新增的代码越多,减号越多表示删除的代码越多,不过这个没关系,只要不冲突就行

问:怎么查看当前版本和上一个版本有哪些改动?

答:输入gitk,回车,可以看到每个版本的代码
image.png

git如果设置了暂存,后来还没有恢复暂存就修改文件,修改文件以后再恢复暂存,就会冲突,冲突的这些文件会生出一些像‘===>Updated stream’之类的东西,这时要修改本地文件,修改好了以后再提交文件,再git pull,记住,要提交以后再git pull,否则会一直说有问题
image.png

问:git stash list,发现stash里有我刚刚提交的信息,为什么?
答:因为提交代码以后,本来是要git stash list的,忘记敲list了,git stash,就把刚刚提交的东西放在暂存里了,这时可以删除stash

问:在hotfix分支上,修改了代码,提交了,然后我又改了develop分支的代码,接着后端把hotfix分支合并到develop上了,我在develop分支git pull时发生冲突,如何解决?
答:由于之前我改的代码很少,只是复制了几行代码出来,改了几个文字,我就去github上把线上develop分支上的文件复制下来了

git冲突以后,‘<<<<<<< Updated upstream’到‘=======’之间的代码是线上的,从‘=======’到‘>>>>>>> Stashed changes’之间的代码是本地的
image.png

在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 stash save -u "zc"’,然后再切换到hotfix分支,你就发现hotfix上干净了
image.png

问:git pull的时候,出现merge提示,怎么办?


image.png

答:

方案1:先把修改内容放在暂存区,这时本地代码恢复到上次提交时的代码,再git pull,再恢复暂存区的数据,这时文件会自动合并,再去修改代码
image.png

解决完冲突以后,想要切换分支,怎么办?
要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,


image.png

再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


image.png

image.png

你可能感兴趣的:(git)