Loading

git使用

配置

设置用户名和邮件地址,每次Git提交都会使用这些信息

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

检查配置,列出所有Git当时能找到的配置

$ git config --list

查找特定配置git config <key>,查找用户名

$ git config user.name

获取帮助

查找Git命令的综合手册

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

如果不需要全面的手册,只需要可用选项,可使用-h替代help

获取Git仓库

  1. 本地未版本控制的目录可使用git init命令创建,目录会创建一个.git的子目录,然后可以通过git add来指定所需的文件来进行追踪,然后执行git commit
  2. 克隆已版本控制的仓库可使用git clone命令创建Git仓库的拷贝
# 克隆远程仓库,并自定义mylibgit本地仓库名
$ git clone https://github.com/libgit2/libgit2 mylibgit

更新到仓库

状态

  • git status命令查看哪些文件处于什么状态

追踪文件

  • git add开始追踪一个文件,使用文件或目录的路径作为参数,如果参数是目录则追踪目录下所有文件

忽略文件

一般项目中有些文件无需纳入Git的管理,也不希望它们出现在未跟踪文件列表,通常是自动生成的文件,比如日志文件、编译的临时文件等。这种情况可以创建一个.gitignore文件,列出要忽略的文件模式,如:

$ cat .gitignore
*.[oa]    #忽略以.o或.a结尾的文件
*~        #忽略~结尾的文件

查看修改

git diff能通过文件补丁的格式具体显示哪些行发生了变化
查看未暂存的文件更新了什么直接使用上面命令,要查看已暂存的文件需要加上-staged-cache参数

提交更新

git commit提交已暂存的文件,-m参数指定提交信息

跳过暂存区域

git commit -a -m 'add new file'使用-a参数会自动把所有已经跟踪的文件暂存并提交,跳过git add步骤。

移除文件

git rm命令从Git中移除某个文件,从已跟踪文件清单移除并删除工作目录下指定文件
如果要删除之前修改过或已放到暂存区的文件,需使用强制删除选项-f
如果想把文件从Git中移除但保留在当前工作目录中,但忘记添加到.gitignore文件,可使用-cached选项:

$ git rm --cached README

移动文件

Git不显式跟踪文件移动操作,要在Git中对文件改名可以:

$ git mv file_from file_to

查看历史版本

git log命令灰暗实现先后顺序列出所有提交
-p--patch选项会显示每次提交所引入的差异,也可限制显示的日志条目数量,如-2选项只显示最近的两次提交
--stat查看每次提交的简略统计信息
pretty使用不同的默认格式展示提交历史,如oneline会将每个提交放在一行显示;还有shortfullfuller,还有format可以定制记录的显示格式
--graph添加一些ASCII字符串来形象展示分支、合并历史
--since--until按照时间作输出限制

$ git log --since=2.weeks  #列出最近两周的所有提交

撤销操作

提交后漏掉一些文件或提交信息写错了,可以带--amend选项重新提交,这个命令会将暂存区中的文件提交。

$ git commit --amend

取消暂存

$ git reset HEAD filename

撤销对文件的修改

$ git checkout -- filename

远程仓库使用

  1. 查看远程仓库
    git remote可以查看已经配置的远程仓库服务器,-v会显示需要读写远程仓库使用的Git保存的简写与其对应的URL
  2. 添加远程仓库
$ git remote add <shortname> <url>
  1. 远程拉取
# 只将数据下载到本地仓库,并不会合并或修改你当前的工作
$ git fetch <remote>

如果当前分支设置了跟踪远程分支,可以用git pull来自动拉取后合并该远程分支到当前分支。
4. 推送到远程

# git push <remote> <branch>
$ git push origin master
  1. 查看某个远程仓库
# git remote show <remote>
  1. 远程仓库重命令
$ git remote rename oldName newName
  1. 移除远程仓库
# git remote remove <remote>

分支

  1. 分支创建
$ git branch branchName
# 不带任何参数则得到当前所有分支的一个列表
$ git branch
# -v 选项可以查看每个分支最后一次提交
# --merged 和 --no-merged 显示已合并和未合并的分支列表
  1. 分支切换
$ git checkout branchName

查看项目分叉历史,会输出提交历史、各个分支的指向以及项目的分支分叉情况

$ git log --oneline --decorate --graph --all

新建一个分支并同时切换到该分支上可使用-b选项

$ git checkout -b branchName
  1. 分支合并
# 先切到主分支
$ git merge branchName
  1. 删除分支
    在分支已经合并后可以删除对应分支,使用-d选项
$ git branch -d branchName

分支合并时冲突

在两个不同分支中,对同一文件的统一部份进行了不同的修改,Git就会产生合并冲突,此时并不会创建一个新的合并提交,而是等待用户解决,此时可以使用git status命令查看哪些包含合并冲突而处于未合并状态(unmerged)的文件。

远程分支

git ls-remote <remote>显式获得远程引用的完整列表
git remote show <remote>获得远程分支的更多信息

posted @ 2024-11-12 10:32  songlh424  阅读(32)  评论(0)    收藏  举报