0
点赞
收藏
分享

微信扫一扫

【Android -- 开发工具】Git 的基本使用

丹柯yx 2022-06-22 阅读 65

安装

下载地址:https://git-scm.com/downloads
Step 1 : Information
【Android -- 开发工具】Git 的基本使用_xml

Step 2: Select Destination Location
【Android -- 开发工具】Git 的基本使用_git_02

Step 3: Select Components
【Android -- 开发工具】Git 的基本使用_缓存_03

Step 4: Select Strat Menu Folder
【Android -- 开发工具】Git 的基本使用_缓存_04

Step 5: Choosing the default editor used by Git
【Android -- 开发工具】Git 的基本使用_git_05

Step 6: Adjusting your PATH environment
【Android -- 开发工具】Git 的基本使用_git_06

Step 7: Choosing HTTPS transport backend
【Android -- 开发工具】Git 的基本使用_git_07

Step 8: Configuring the line ending conversions
【Android -- 开发工具】Git 的基本使用_xml_08

Step 9: Configuring the terminal emulator to use with Git Bash
【Android -- 开发工具】Git 的基本使用_git_09

Step 10: Configuring extra options
【Android -- 开发工具】Git 的基本使用_缓存_10

Step 11: Installing
【Android -- 开发工具】Git 的基本使用_缓存_11

Step 12: Completing the Git Setup Wizard
【Android -- 开发工具】Git 的基本使用_xml_12

Step 13: 获取密匙

$ ssh-keygen-t rsa-C "your_email@youremail.com"

然后一直按回车。
【Android -- 开发工具】Git 的基本使用_xml_13

使用

初始化

如果你打算使用 Git 来对现有的项目进行管理,你只需要 cd 进入该项目目录并输入:

  • ​$ git init​​ 将当前的目录转换成一个 Git 仓库。它在当前的目录下增加了一个 .git 目录,于是就可以开始记录项目版本了。
  • ​$ git init <demo>​​ 在指定目录创建一个空的 Git 仓库。运行这个命令会创建一个名为 demo,只包含 .git 子目录的空目录。
  • ​git init --bare <directory>​​ 一般来说,用 —bare 标记初始化的仓库以 .git 结尾。比如,一个叫my-project的仓库,它的空版本应该保存在 my-project.git 目录下。

克隆远程仓库到本地

​$ git clone [address]​​ 将位于 [address] 的仓库克隆到本地机器。原仓库可以在本地文件系统中,或是通过 HTTP 或 SSH 连接的远程机器。

配置

Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:

/etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。

~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。

当前使用仓库的 Git 目录中的 config 文件(就是 .git/config):针对该仓库。

每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。

  1. 设置系统用户git用户名
    ​$ git config --global user.name "Scarf"​
  2. 设置系统用户git邮箱
    ​$ git config --global user.email johndoe@example.com​
  3. 检查配置信息
    ​$ git config --list​
  4. 查看用户名
  • ​$ git config user.name​​ 查看当前项目的
  • ​$ git config --global user.name​​ 查看系统用户的
  1. 查看邮箱
    ​​​$ git config user.email​

tips:

mac上出现即使修改了用户名也提示认证失败的问题,进入钥匙串,将原来保存的git的钥匙删除,再重新使用git。

缓存区

git add 命令最主要的作用是将工作目录中的更改添加到 Git 的缓存区。
​​​$ git add <文件>​​​ 缓存 <文件> 中的更改,准备下次提交。
​$ git add <目录>​​ 缓存 <目录> 下的所有更改,准备下次提交。

例子:

$ git add .
$ git commit

添加所有更改的文件到缓存区。

$ git add hello.txt
$ git commit

添加 hello.txt 文件到缓存区。

检查仓库状态

查看提交状态

​$ git status​​ 列出已缓存、未缓存、未追踪的文件。

添加忽略文件配置

​$ touch .gitignore​​ 忽略规则:

  1. "#"表示注释
  2. "*"表示匹配0个或多个任意字符,例如我想把项目根目录下的.xml后缀的文件全部忽略,可以这样
    ​*.xml​
  3. "?"通配单个字符,即匹配一个任意字符
    ​?.xml​
  4. “**” 表示匹配任意中间目录
    ​ a/**/z/?.xml​
  5. "/"开头表示目录,把根目录下的node_modules文件夹忽略
    ​ /node_modules​
  6. "[]"包含单个字符的匹配列表,即匹配任何一个列在方括号中的字符。比如[abc]表示要么匹配一个a,要么匹配一个b,要么匹配一个c。比如[0-9]表示匹配所有0到9的数字,[a-z]表示匹配任意的小写字母。
    ​[abc].xml​
  7. "!“表示不忽略(跟踪)匹配到的文件或目录,即要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。需要特别注意的是:如果文件的父目录已经被前面的规则排除掉了,那么对这个文件用”!"规则是不起作用的。

查看提交历史

  • ​$ git log​​ 使用默认格式显示完整地项目历史。如果输出超过一屏,你可以用 空格键 来滚动,按 q 退出。
  • ​$ git log -p​​ 参数用来显示每次提交的内容差异,你也可以加上

​$ git log -2​​ 仅显示最近两次提交。

​$ git log --stat​​ 除了 git log 信息之外,包含哪些文件被更改了,以及每个文件相对的增删行数。

​$ git log --pretty=oneline​​ 这个选项可以指定使用不同于默认格式的方式展示提交历史。用 oneline 将每个提交放在一行显示,查看的提交数很大时非常有用。 另外还有 short,full 和 fuller 可以用,展示的信息或多或少有些不同,请自己动手实践一下看看效果如何。

  • ​$ git log [文件名]​​ 只查看某个文件的提交历史
  • ​$ git show [commit id] [文件名]​​ 接下来使用git show显示具体的某次的改动

检出之前的提交

git checkout
这个命令有三个不同的作用:检出文件、检出提交和检出分支。

  • ​$ git checkout master​​ 切换到 master 分支。
  • ​$ git checkout <commit> <file>​​ 查看文件之前的版本。
  • ​$ git checkout <commit>​​ 更新工作目录中的所有文件,使得和某个特定提交中的文件一致。

例子:
查看之前的版本:

$ git log --oneline    //输入

$ b7119f2 继续做些丧心病狂的事 //显示
$ 872fa7e 做些丧心病狂的事 //显示
$ a1e8fb5 对 hello.py 做了一些修改 //显示
$435b61d 创建 hello.py //显示
$9773e52 初始导入 //显示

$ git checkout a1e8fb5 //输入 检出提交
$ git checkout a1e8fb5 hello.py //输入 检出文件

回滚错误的修改

git revert
用来撤销一个已经提交的快照。但是,它是通过搞清楚如何撤销这个提交引入的更改,然后在最后加上一个撤销了更改的 新 提交,而不是从项目历史中移除这个提交。这避免了Git丢失项目历史,这一点对于你的版本历史和协作的可靠性来说是很重要的。
​​​$ git revert <commit>​​​ 生成一个撤消了 引入的修改的新提交,然后应用到当前分支。
例子:

# 编辑一些跟踪的文件

# 提交一份快照
git commit -m "Make some changes that will be undone"

# 撤销刚刚的提交
git revert HEAD

​$ git reset <file>​​ 从缓存区移除特定文件,但不改变工作目录。它会取消这个文件的缓存,而不覆盖任何更改。

​$ git clean -n​​ 执行一次git clean的『演习』。它会告诉你那些文件在命令执行后会被移除,而不是真的删除它。

分支

  • 查看本地分支
    ​$ git branch​
  • 查看远程所有分支
    ​$ git branch -r​
  • 查看本地和远程的所有分支
    ​$ git brach -a​
  • 新建分支
$ git branch [branch name]
$ git checkout [branch name]
  • 切换本地分支
    ​​​$ git checkout [branch name]​
  • 删除本地分支
    ​​​$ git branch -d [branchname]​
  • 删除远程分支,删除后还需推送到服务器
$ git branch -d -r [branchname]
$ git push origin [branchname] //删除后推送至服务器
  • 重命名本地分支
    ​$ git branch -m [oldbranch] [newbranch]​
  • 分支的合并
$ git checkout [master]
$ git merge [branchname]

1)既然你的修改已经合并进来了,你已经不再需要 branchname 分支了。 现在你可以在任务追踪系统中关闭此项任务,并删除这个分支。
​​​$ git branch -d iss53​

2)遇到冲突时的分支合并。可以运行 git mergetool,该命令会为你启动一个合适的可视化合并工具,并带领你一步一步解决这些冲突:
​​​$ git mergetool​

下载更新远程代码到本地

  • 方式一,使用git fetch
    将某个远程主机的更新全部取回本地。如果远程有新的分支信息,也会一起取回本地。
    ​​​$ git fetch​​​ 这时需要确认当前本地分支是否与你预想的一致,如果不一样,需要进行切换
    ​$ git checkout [branch name]​​ 如果只是想取回特定的分支,例如origin主机的master分支
    ​$ git fetch origin master​​ 取回更新后,会返回一个FETCH_HEAD,FETCH_HEAD指的是,某个branch在服务器上的最新状态。这个列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支。
    查看刚取回的更新信息
    ​$ git log -p FETCH_HEAD​​ 比较本地的仓库和远程参考的区别
    ​$ git log -p master origin/master​​ 把远程下载下来的代码合并到本地
    ​$ git merge origin [branch name]​​ 如果不带参数,则默认选择你当前所在的分支
    ​$ git merge​
  • 方式二,使用 git pull
    git pull 的过程可以理解为:
$ git fetch origin [branch]
$ git merge FETCH_HEAD

即将远程主机的某个分支的更新取回,并与本地指定的分支合并
​​​$ git pull origin [remote branch]:[local branch]​​​ 如果不带参数,它会默认当前你所在的分支进行操作。
​$ git pull​

###上传本地代码到远程分支
添加跟踪文件,暂存这次更新

$ git add [filename]
$ git add . // 添加当前整个文件夹

提交更新
​​​$ git commit -m "comment content" // comment content为这次提交的评论​​​ 如果不带参数,则默认会打开一个vi或者vim的编辑器,进行comment的编写。
​$ git commit​​ 推送你的更新到远程服务器
​$ git push origin [branch]​​ 如果不带参数,默认选择你所在的分支
​$ git push​

撤销暂存

将某个文件或文件夹从暂存区移除,下一次提交时,该文件就不再纳入版本管理了。
​​​$ git rm [file/path]​​​ 如果只是一次commit失误,但仍然希望保留在当前工作目录中,例如当你忘记添加 .gitignore 文件,又不小心把a.xml提交更新,这一做法尤其有用。
​$ git rm --cached a.xml​

[参考文献]

  • ​​Android Studio关联Git及使用​​
  • ​​Android Studio关联SVN​​
  • ​​版本控制可忽略文件​​
  • ​​一篇文章,教你学会Git​​


举报

相关推荐

0 条评论