参考资料:
廖雪峰git教程
常用 Git 命令清单
Linux命令对应的英文全称
每天一个linux命令
查询网站:explainshell,查命令行英文全称,便于记忆和了解作用
git init
git add .
git commit -m "文件描述"
git remote add origin url_of_your_newrepository
git push -u origin master
git push origin master
git pull
git checkout dev (切换到分支)
pwd // 英文全名:Print Working Directory
ls (不包括隐藏文件)
英文全名:list
ls -a (包括隐藏文件)
ls -al (包括隐藏文件的详细信息)
cd
英文全名:Change Directory
例:
cd /c/project
cd code
cd …/css
cd ~/Desktop
mkdir
英文全名:Mike Directory
touch
rm (删除文件)
英文全名:ReMove
rm -rf (删除文件夹)
mv readme.md(旧) README.md(新)
英文全名:MoVe
cat
curl -L https://raw.githubusercontent.com/rupa/z/master/z.sh
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config user.name
git config user.email
git config --global push.default simple # 推送本地当前分支(必要的设置)
git config --global core.quotepath false #防止文件名变成数字
git config --global core.editor "vim" # 使用vim编辑提交信息
--global
表示你这台机器上所有的Git仓库都会使用这个配置
git init
git add readme.txt
git add -A (提交所有变化)
git add -u (提交被修改(modified)和被删除(deleted)文件,不包括新文件(new))
git add . (提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件)
git commit -m "first commit"
git status
git status -sb //(简明扼要版)
git diff readme.txt
git diff HEAD - - readme.txt(查看工作区和版本库里面最新版本的区别)
git log
- -pretty=oneline参数,简明版
git reset - -hard HEAD^
用HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。
git reset - -hard 版本号
commit id,找到对应的版本号可回到对应的版本
git reflog
git checkout - - readme.txt
让这个文件回到最近一次git add或git commit时的状态,既可丢弃工作区的修改,也可复原误删的文件
git reset HEAD readme.txt
把暂存区的修改回退到工作区
git rm test.txt
git commit -m “remove test.txt”
//删除文件夹下的所有 .git 文件
find . -name ".git" | xargs rm -Rf
需要注意的事项
git无法跟踪图片、视频这些二进制文件
千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”
ssh-keygen -t rsa -C "[email protected]"
一路回车,使用默认值即可。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
登陆GitHub,打开“Account settings”,“SSH Keys”页面,添加公钥。
git remote add origin [email protected]:username/learngit.git
username为GitHub账户名
这里把远程库的地址添加个标签叫origin
也可以添加别的名字作为标签,例如:
git remote add gitlab [email protected]:abc/blog.git
推送的时候推送到对应标签上:
git push gitlab master
git remote (查看远程库的信息)
git remote -v(显示更详细的信息)
git remote remove gitlab(删除远程库gitlab 标签)
git remote set-url origin [email protected]:jirengu/blog3.git(修改origin标签对应的地址)
git remote rename gitlab coding(把 gitlab 标签改名为coding)
git push -u origin master
第一次推送master分支时,加上了-u参数,把本地的master分支和远程的master分支关联起来
从现在起,只要本地作了提交,就可以通过命令:
git push origin master
把本地master分支的最新修改推送至GitHub
git clone 地址
git branch dev (创建分支)
git checkout dev (切换到分支)
git checkout -b dev(创建并切换)
git branch (查看当前分支)
分支前面会标一个*号
git checkout master(切换回master分支)
git merge dev (合并指定分支到当前分支)
git merge --no-ff -m “merge with no-ff” dev(不用fast forward模式,保留分支历史信息)
git branch -d dev(删除分支)
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
用git log --graph命令可以看到分支合并图。
git stash(储藏当前工作区)
git stash list(查看储藏的工作区)
git stash apply (恢复储藏的工作区到当前的工作区)
git stash drop (删除储藏的工作区)
git stash pop (恢复并删除)
git stash apply stash@{0}(多次stash后恢复指定的工作区)
git pull
把最新的提交从远程仓库抓下来,然后,在本地合并,解决冲突,再推送
多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git
branch --set-upstream branch-name origin/branch-name。
git tag v1.0 (给当前分支打上标签v1.0)
git tag (查看所有标签)
git tag v0.9 6224937(给指定的commit id打上标签)
git show v0.9 (查看标签信息)
git tag -a v0.1 -m “version 0.1 released” 3628164 (用-a指定标签名,-m指定说明文字)
git tag -s -m “blablabla…” (可以用PGP签名标签)
git tag -d v0.1 (删除标签)
git push origin v1.0 (推送标签到远程)
git push origin --tags (一次性推送全部尚未推送到远程的本地标签)
git push origin :refs/tags/v0.9 (删除远程库里的标签)
git push origin master --force //远程仓库版本回退
当我们将 .gitignore 文件配置好后,却往往不能失效。这是因为 .gitignore 只能忽略那些没有被追踪(track)的文件,因为 git 存在本地缓存,如果文件已经纳入了版本管理,那么修改 .gitignore 是不能失效的。那么解决方案就是要将 git 的本地缓存删除,然后重新提交。
git rm -r --cached .
git add .
git commit -m "update .gitignore"
安装:
npm i -g git-open
**使用:**帮你打开本地仓库对应的github网页
git open
附:
常见的自带命令
操作 | 命令 |
---|---|
进入目录 | cd |
显示当前目录 | pwd |
创建目录 | mkdir 目录名 |
创建目录 | mkdir -p 目录路径 |
我是谁 | whoami |
– | – |
查看路径 | ls 路径 |
查看路径 | ls -a 路径 |
查看路径 | ls -l 路径 |
查看路径 | ls -al 路径 |
– | – |
创建文件 | echo ‘1’ > 文件路径 |
强制创建文件 | echo ‘1’ >! 文件路径 |
追加文件内容 | echo ‘1’ >> 文件路径 |
创建文件 | touch 文件名 |
改变文件更新时间 | touch 文件名 |
– | – |
复制文件 | cp 源路径 目标路径 |
复制目录 | cp -r 源路径 目标路径 |
– | – |
移动节点 | mv 源路径 目标路径 |
– | – |
删除文件 | rm 文件路径 |
强制删除文件 | rm -f 文件路径 |
删除目录 | rm -r 目录路径 |
强制删除目录 | rm -rf 目录路径 |
– | – |
查看目录结构 | tree |
建立软链接 | ln -s 真实文件 链接 |
– | – |
下载文件 | curl -L https://www.baidu.com > baidu.html |
拷贝网页 | wget -p -H -e robots=off https://www.baidu.com |
磁盘占用 | df -kh |
当前目录大小 | du -sh . |
各文件大小 | du -h |