学习Git时记录下来了常用的命令以及遇到的小问题的解决方案,欢迎大家批评指正
!!!!!
-
$ git config --global alias.st status 偷懒神器,将Git命令自定义为你设置的命令,for example:此行命令是将status命名为st,此后就可以用st代替status啦
配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
TIPS
- Git中出现‘>’无法退出时,可用Ctrl + d 退出
- 切换文件夹
cd (文件夹名)
- 添加文件
git add
- 提交更改
git commit -m"你的备注"
- 可在版本历史间穿梭
git reset --hard commit_id
7.查看提交历史,以便确定回到历史哪个版本
git log
- 查看历史命令,确定回到未来哪个版本
git reflog
-
add使文件添加到暂存区,commit将所有修改添加到分支
-
删除文件
rm (文件名)
- 恢复文件 从来没有添加到版本库的文件是不会被恢复的
git restore – (文件名)
- 查看分支状态,可以通过英文状态下按q退出查看
git log
- 查看分支修改情况
git log --pretty=oneline --abbrev-commit
远程推送
- 使本地Git库与github相关联:
$ git remote add origin(此变量origin可自行定义,为你关联库的名字) git@github.com:michaelliao/learngit.git
- 推送本地库所有内容:
$ git push -u origin master
- 现在起,本地完成提交后,可以将分支最新修改推送到GitHub:
$ git push origin master
碰到无法推送至github的问题
-
fatal: remote origin already exists.
解决方案:$ git remote rm origin(删除已有origin的),然后再次创建即可
$ ssh-keygen -t rsa -C “youremail@example.com” (创建本地RSA密匙) -
permission denied
解决方案:我把RSA密匙存放在D/Git/learngit/上,但不知道为什么,它用的密匙是在C盘里的文件夹下另外一个密匙,于是我在GitHub上添加了C盘的密匙,最终验证通过
- 报错:
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
- 该错误说明SSH密匙没有被添加至github
- 本地的SSH密匙没有被创建
解决方案:
1、不关闭BASH无法重新读取环境变量
2、在我的电脑-属性中,找到环境变量,删除HOME变量,问题得到解决。
克隆文件
- 远程克隆文件:
git clone git@github.com:(github名称)/gitskills.git
- 文件查看指令:
ls(即List directory contents,用来显示目录或具体文件列表)
分支管理
- 创建分支
git checkout -b dev后,
提交branch test时,发生错误:
unable to auto-detect email address
解决方案:
git config --global user.name “follow”
git config --global user.email “follow@qq.com”
配置用户名和邮箱
- Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch
切换分支:git checkout 或者git switch
创建+切换分支:git checkout -b 或者git switch -c
合并某分支到当前分支:git merge
删除分支:git branch -d
强行删除: git branch -D
整理分支推送冲突后的“杂乱分支”,使得时间线变为一条:git rebase
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph命令可以看到分支合并图
多人协作
- 推送自己的修改
git push origin
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并
如果合并有冲突,则解决冲突,并在本地提交
没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令
git branch --set-upstream-to origin/。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
代码版本标签
git tag “标签名” 版本号
git push origin 可以推送一个本地标签;
git push origin --tags可以推送全部未推送过的本地标签;
git tag -d 可以删除一个本地标签;
git push origin :refs/tags/可以删除一个远程标签。
小结
- 查看远程库信息,使用
git remote -v
- 本地新建的分支如果不推送到远程,对其他人就是不可见的;
- 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
- 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
- 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
- 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
我的Git学习要感谢廖雪峰大哥的Git教程,强烈安利此教程!!!
我的Git学习要感谢廖雪峰大哥的Git教程,强烈安利此教程!!!
我的Git学习要感谢廖雪峰大哥的Git教程,强烈安利此教程!!!