git基本操作整理

git基本操作整理

之前用的svn,很少使用命令,如今要使用gitlab,所以整理一下 git 的简单用法。

基本快照

Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。

查看git配置信息

1
git config --list

git status 查看状态

1
2
3
4
5
6
7
8
9
10
# 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 添加文件进缓存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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,需要添加名称和邮箱

1
2
git config --global user.name "maxzhao"
git config --global user.email "1441439636@qq.com"
1
2
3
git commit -m 'first commit';
git status -s
$ ?? .attach_pid24604

修改 README.md

1
2
3
echo  'xxx' > README.md
git status -s
$ M README.md

git commit -a 直接提交缓存

上面修改了文件,想直接添加到仓库

1
git commit -am 'modify readme.md'

git rm 删除文件

1
2
3
4
5
6
# 简单删除,文件就没有了
git rm <file>
# 如果把文件从暂存区域移除,文件还在
git rm --cached <file>
# 递归删除
git rm –r *

查看提交历史

1
2
3
4
5
6
7
8
9
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

远程仓库

添加远程仓库

1
git remote add [shortname] [url]

设置公钥

添加之前,需要设置公钥:

需要3次回车,两次是输入密码。

1
ssh-keygen -t rsa -C "1441439636@qq.com"

查看公钥

1
cat ~/.ssh/id_rsa.pub

然后根据不同网站的设置公钥的方式,设置好公钥。

添加仓库

1
2
3
4
5
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

查看仓库

1
2
git remote
git remote -v

获取远程仓库代码

1、从远程仓库下载新分支与数据:

1
git fetch

该命令执行完后需要执行git merge 远程分支到你所在的分支。

2、从远端仓库提取数据并尝试合并到当前分支:

1
git merge

该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支。

假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行 git fetch [alias] 告诉 Git 去获取它有你没有的数据,然后你可以执行 git merge [alias]/[branch]
以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。

推送到远程仓库

1
2
3
git push [alias] [branch]
# 推送到origin 的 master 分支
git push origin master

推送之前:

1
2
3
3ceeb5a (HEAD -> master) modify readme.md
e66d82e create readme.md
bc5a5d8 (origin/master) first commit

推送之后:

1
2
3
3ceeb5a (HEAD -> master, origin/master) modify readme.md
e66d82e create readme.md
bc5a5d8 first commit

删除远程仓库

1
git remote rm xxx

协作开发

  • 创建开发分支
  • fork项目
  • clone 项目(注意要有自己的地址和团队地址,自己的地址用来提交自己的修改,团队地址用来获取更新 git remote add 自己库名 仓库地址)
  • 使用 git branch 命令查看本地分支
  • 使用 git branch -a 查看项目所有分支
  • 创建并 clone 仓库开发分支
  • git checkout -b dev origin/dev 创建(-b)dev分支,clone 远程dev分支(origin/dev)的内容。切换到该分支(checkout)
  • 切换分支 git checkout master
  • 获取最新版本git fetch origin
  • 合并 git merge origin/dev
  • 解决冲突

强制解决合并冲突

1
rm -rf .git/MERGE*

退出账号

清除配置中纪录的用户名和密码,下次提交代码时会让重新输入账号密码:

1
git config --system --unset credential.helper

执行命令之后,再次pull或push时会缓存输入的用户名和密码:

1
git config --global credential.helper store

清除git缓存中的用户名的密码

1
git credential-manager uninstall

本文地址: git基本操作整理

本文地址: https://github.com/maxzhao-it/blog/post/44004/