git基本操作整理
之前用的svn,很少使用命令,如今要使用gitlab,所以整理一下 git 的简单用法。
基本快照
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
git status 查看状态
# git-status - Show the working tree status
# git status --help 帮助
# git status -s 简约查看
git status -s
$ A .gitignore
$ AM README.md
$ A pom.xml
$ ?? root.md
$ ?? .attach_pid24604
# A 是新添加的文件 AM 是添加之后又有改动 M 是commit 之后有修改 ??是未操作的文件
git add 添加文件进缓存
git add root.md
git status -s
$ A .gitignore
$ AM README.md
$ A pom.xml
$ A root.md
$ ?? .attach_pid24604
git add README.md
$ A .gitignore
$ A README.md
$ A pom.xml
$ A root.md
$ ?? .attach_pid24604
git reset HEAD 取消 git add 添加的文件
git commit 将缓存内容添加到仓库中
如果新安装git,需要添加名称和邮箱
git config --global user.name 'maxzhao'
git config --global user.email 1441439636@qq.com
git commit -m 'first commit';
git status -s
$ ?? .attach_pid24604
修改 README.md
echo 'xxx' > README.md
git status -s
$ M README.md
git commit -a 直接提交缓存
上面修改了文件,想直接添加到仓库
git commit -am 'modify readme.md'
git rm 删除文件
# 简单删除,文件就没有了
git rm <file>
# 如果把文件从暂存区域移除,文件还在
git rm --cached <file>
# 递归删除
git rm –r *
查看提交历史
git log
## 简约查看
git log --oneline
## --graph 选项,查看历史中什么时候出现了分支、合并。
git log --oneline --graph
## --reverse 参数来逆向显示所有日志。
## --author 参数来查看指定用户所有日志。
git log --oneline --author=maxzhao
## --before={3.weeks.ago} --after={2010-04-18} 三周前且在四月十八日之后的所有提交 --no-merges 隐藏合并提交
查看提交记录详情
-
查看commitId
git log --oneline
-
查看最新的commit
git show
-
查看指定commit hashID的所有修改:
git show commitId
-
查看某次commit中具体某个文件的修改:
git show commitId fileName
远程仓库
添加远程仓库
git remote add [shortname] [url]
设置公钥
添加之前,需要设置公钥:
需要3次回车,两次是输入密码。
ssh-keygen -t rsa -C "1441439636@qq.com"
查看公钥
cat ~/.ssh/id_rsa.pub
然后根据不同网站的设置公钥的方式,设置好公钥。
添加仓库
git remote add origin git@gitee.com:<名称>/<项目名称>.git
git pull origin master --allow-unrelated-histories
git push -u origin master
# -f 覆盖
git push -f origin master
查看仓库
git remote
git remote -v
获取远程仓库代码
1、从远程仓库下载新分支与数据:
git fetch
该命令执行完后需要执行git merge 远程分支到你所在的分支。
2、从远端仓库提取数据并尝试合并到当前分支:
git merge
该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支。
假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行 git fetch [alias] 告诉 Git 去获取它有你没有的数据,然后你可以执行 git merge [alias]/[branch] 以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。
推送到远程仓库
git push [alias] [branch]
# 推送到origin 的 master 分支
git push origin master
推送之前:
3ceeb5a (HEAD -> master) modify readme.md
e66d82e create readme.md
bc5a5d8 (origin/master) first commit
推送之后:
3ceeb5a (HEAD -> master, origin/master) modify readme.md
e66d82e create readme.md
bc5a5d8 first commit
删除远程仓库
git remote rm xxx
本文地址:
网友评论