Git 命令(本地仓库)
使用操作前需要配置,安装 Git
或者使用 cmder
git config --global user.name '名称'
git config --global user.email '邮箱'
git config --global push.default simple
git config --global core.quotepath false
git config --global core.editor "code --wait"
git config --global core.autocrlf input
git config --global --list 查看配置是否成功
PS:user.name 和 user.email 输入自己的名字和邮箱,与 Github 保持一致,也可以不一致。
git 常用命令
git init //初始化
git add 文件名 //标记选中要提交的文件或目录,可设置.gitignore,在其中添加不需要提交的文件名称
git status
git commit -m "版本01" //提交, -m "字符串" 备注提交内容
git commit -v //同上,可回顾修改的内容,添加修改备注后保存然后关闭文件即可。
git log //可查看之前修改的具体信息
git reset --hard [commit 前六位ID] //回退版本,通过git log查看commit行前六位id
git reflog // 查看当前log并且可查看已经回退前的log
git branch x // 创建分支
git checkout master // 切换分支
history //查看执行过的git命令
git branch //查看分支 在当前分支前有*号
git merge x //合并分支
git branch -d x //删除分支
合并分支遇到冲突
git merge x 遇到以下提示:
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
git status -sb 查看哪里发生了冲突
首先vim 打开冲突的文件解决冲突代码,在两个代码块中选择要保留的代码,删除git提示======和<<<<<<< HEAD,保存退出
再次git add index.html,直到没有冲突后。直接运行git commit
.git
目录就是本地仓库,它不会复制相同的文件,能够支持多个分支。
git add
处理的是文件变化而不是文件,当删除一个文件后依然要使用 git add
来添加到待提交区
Git 命令(远程仓库)
ssh-keygen -t rsa -b 4096 -C '邮箱地址' //然后命令行会有三次提问,不管直接按三次回车,成功后会在用户目录下生成一个.ssh的文件夹,这里面就是公钥和私钥
// 然后将私钥保存到Github中,登录Github -- Settings -- SSH and GPG keys -- New SSH key
cat ~/.ssh/id_rsa.pub // 查看公钥内容并从ssh-rsa开始全部复制保存到Github中
ssh -T git@github.com // 输入yes,进行验证
使用 ssh key
电脑上存放私钥,Github
账号里存放公钥,上传代码使用私钥加密,Github
使用公钥解密。
同时需要 Github
提供一个公钥给我,让我知道对方是 Github
。所以需要输入 yes
来接收对方的公钥
上传代码
// 新建GitHub Repo 复制项目的ssh地址
git remote add origin git@xxxxxxx
// 在本地添加远程仓库地址,origin是远程仓库的默认名称,可以换,但是不建议。不要使用https://地址,这种方式每次都需要密码
git push -u origin master
// 推送本地master分支到远程origin的master分支
// 也可能需要先git pull一下,如果遇到提示的话,git pull 是先把远程分支合并到本地对应分支
// 如果远程分支没有更新过,才可以省略git pull; -u origin master 的意思是设置上游分支 之后就不用再设置上游分支了,直接 git pull; git push;
//使用VScode打开项目新建终端输入以下命令
git remote add origin git@github.com:XXXXXX/git-demo-1.git //XXXXXX替换成github用户名
git branch -M main // 强制修改分支名称,可不做
git push -u origin main // -u默认,按照这次的设置一样推送到origin main仓库。第一次需要加下次可直接git push;
// 如何上传其他的分支
// 方法一
git push origin x:x //从本地的x push到远程的x
// 方法二
git checkout x
git push -u origin x
新版 Github
新建 Repo
后给的代码强制修改分支名称位 main
,修改后第一次 push
名称也要使用 main
(原来是 master
没有修改分支名称这一步。)
所有代码都能用 ssh
和 https
协议下载,ssh
协议传输速率会高一些。
下载 Github
上的代码 git clone git@XXXXXX[目标路径]
; 需要先在电脑上生成 ssh key
cd
目标路径,git add / git commit / [git pull] / git push
四步操作。
解决冲突的办法
发现冲突
在合并分支的时候,会得到 conflict 提示,使用 git status -sb 查看那些文件冲突了
解决冲突
依次打开每个文件,找到很多=====等于号的行,在上下两部分中选择要保留的代码,然后删除不需要的代码,删除=====>>>><<<<<<等等标记。
然后再 git add
对应的文件,再次 git status -sb
,解决下一个文件的冲突。最后运行 git commi
t 直接提交~
git clone / git pull / git push
远程仓库只是本地仓库的备份,所有变化都需要先 commit
到本地仓库。然后 push
到远程!
运行以下命令,给 git
添加缩写:
touch ~/.bashrc
echo 'alias ga="git add"' >> ~/.bashrc
echo 'alias gc="git commit -v"' >> ~/.bashrc
echo 'alias gl="git pull"' >> ~/.bashrc
echo 'alias gp="git push"' >> ~/.bashrc
echo 'alias gco="git checkout"' >> ~/.bashrc
echo 'alias gst="git status -sb"' >> ~/.bashrc
source ~/.bashrc //刷新
alias glog="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit -- | less" //这行直接加到~/.bashrc 文件末尾
git rebase -i xxxxxxx //操作美化log,主要关注r采用,但是改写message。s采用,但是合并到上一个提交
git stash/git stash pop //不想提交代码又不想删除,那么可以将代码历史藏起来
git reset --hard HEAD //清楚所有代码变动,回到最开始的状态(慎用,不可恢复)
git push -f -u origin master //强制覆盖之前的仓库
git remote add mayun git@gitee.com:centaurusR/webpack.git //修改源名称
git remote set-url mayun git@gitee.com:centaurusR/webpack.git //重置url
#使用webpack时 git脚本
yarn build &&
git checkout gh-pages &&
rm -rf *.html *.js *.css *.png *.jpg *.jpeg &&
mv dist/* ./ &&
rm -rf dist
git add . &&
git commit -m 'update' &&
git push &&
git checkout - #回到上一级
Q.E.D.