git常用命令总结

1. git工作机制介绍

1、git工作流程

  • 从远程仓库克隆代码到本地仓库
  • 从本地仓库中checkout代码然后进行代码修改
  • 在提交代码前先将代码提交到暂存区
  • 提交到本地仓库,本地仓库中保存修改的各个历史版本
  • 修改完成后,将代码push到远程仓库和团队共享代码

2、git的版本库、工作目录、暂存区

版本库:仓库中的.git隐藏文件夹就是版本库,其中储存了配置信息、日志文件和文件版本信息等

**工作目录:**包含.git文件夹的目录就是工作目录,主要用于存放开发代码

暂存区:.git目录下的index文件就是暂存区,也叫stage,暂存区是一个临时保存修改文件的二进制文件。

3、工作目录下的文件状态

  • untracked未跟踪(未纳入版本控制)
  • tracked已跟踪(被纳入版本控制)
    • Unmodified未修改状态
    • Modified已修改状态
    • Staged已暂存状态

2. git常用命令

  1. 设置”用户名“和”email“

    新安装好git后需要进行用户名和email设置,Git每次提交都会使用该用户信息。

    # 设置用户信息
    git config --global user.name "userName"
    git config --global user.email "email"
    
    # 查看设置好的配置信息
    git config --list
    fit config user.name
    
    # 通过命令设置的用户信息会保存在~/.gitconfig文件中
    
  2. 获取git仓库

    # 1.在本地初始化一个git仓库
    # 新建本地仓库目录,在git bash中输入命令,初始化后生成.git的隐藏文件
    git init
    
    # 2.通过远程仓库clone一个git仓库
    git clone <url>
    
  3. 本地仓库操作

    # 1.查看当前分支信息、文件状态
    git status
    git status -s		#查看信息更简洁 M:代表已修改的文件 D:代表已删除的文件  ??:代表未跟踪的文件 A:代表添加到暂存区的文件
    
    # 2.文件加入暂存区
    git add <filename>					#添加文件到暂存
    git reset HEAD <filename>			#取消暂存区文件
    
    # 3.提交暂存区文件到本地仓库
    git commit -m "日志信息"		#会将暂存区文件一次性提交到本地仓库
    git commit			#如果没有-m会默认打开一个vim编辑器输入日志信息
    # -a参数:如果使用-a,会将修改过的所有文件直接添加到本地库,而不需要git add命令添加到暂存区
    
    # 4.删除文件
    git rm 文件名
    # 注意点:
    # git rm命令删除的工作区中文件,本地仓库中仍然有该文件,需要使用git commit才能同步删除本地仓库中文件
    # git rm命令删除文件后,会默认将该文件添加到暂存区;而直接在目录中delete文件并不会添加文件到暂存区,因此不能直接使用commit命令同步本地仓库,如果使用delete删除文件后,需要先使用git add命令将该文件添加到暂存区,在使用git commit提交到本地仓库
    
    # 5.忽略列表
    在工作目录下面创建名为.gitignore文件(在git bash中输入touch .gitignore创建),并在其中添加无需纳入Git管理的文件
    *.a		# 所有的.a结尾文件
    !lib.a	# 除了lib.a外的.a文件
    /TODO	# 忽略TODO目录
    build/	# 忽略build/下的文件
    doc/**/*.pdf	#忽略doc/directory/下的所有.pdf文件
    
    # 6.查看操作日志记录
    git log
    
  4. 远程操作命令

    # 1.查看远程仓库
    git remote	#列出每一个远程服务器简写,至少有一个origin(git仓库服务器的默认名字)
    git remote -v	#列出服务器的信息更详细
    git remote show origin	#查看origin服务器的详细信息(分支信息)
    
    # 2.添加远程仓库
    git remote add <shortname> <url>	#shortname为远程服务器名称,一般为origin;本地仓库可以对应多个远程仓库
    
    # 3.clone远程仓库 
    git clone <url>		#拷贝一份已经存在的远程git仓库,默认配置下Git仓库中的每一个文件的每一个版本都会被拉取下来
    
    # 4.移除远程仓库
    git remote rm <远程服务器名>		#移除本地远程仓库的记录
    
    # 5.从远程仓库抓取
    git fetch		#从远程仓库获取最新版本到本地仓库中的.git/object目录下,不会自动merge到本地仓库
    git fetch origin master	#指定远程仓库获取最新版本
    git merge origin/master	#将本地origin/master分支文件合并到工作区
    
    # 6.从远程仓库拉取(自动merge)
    git pull	#从远程仓库获取最新版本并mmerge到本地仓库
    git pull origin master	#指定拉取的远程仓库
    # 注意
    # 如果工作区中有未被跟踪的文件,而远程中也有同名文件,git pull拉取后不会自动merge,而是需要先处理未跟踪的同名文件,再手动git merge
    # 如果是本地新创建的仓库,并且仓库中存在文件,再从远程仓库中拉取文件会报错:refusing to merge unrelated histories,此时需要在git pull命令后加入参数--allow-unrelated-histories
    
    # 7.推送代码到远程
    git push [remote-name] [branch-name]	#推送本地branch_name中代码到远程仓库
    # 注意推送的内容都是添加到本地仓库的内容
    
  5. 分支操作

    # 1.查看分支
    git branch			#列出所有本地分支
    git branch -r		#列出所有远程分支,远程分支以(remote/)开头
    git branch -a		#列出所有本地和远程分支
    
    # 2.创建分支
    git branch [branch_name]		#创建本地分支
    
    # 3.切换分支
    git checkout [branch_name]		#切换到指定分支,切换后本地目录下文件也会对应修改
    
    # 4.推送至远程仓库分支
    git push [origin_name] [branch_name]		#branch_name为要push的本地分支
    
    # 5.合并分支
    git merge [branch_name]		#合并指定branch_name分支到当前分支
    # 冲突处理
    # 如果在两个不同分支中对同一个文件都进行了不同的修改,在使用git merge后会提示冲突,此时需要手动打开文件处理冲突的内容,并将修改后的文件使用git add标识冲突已修改,最后使用git commit提交文件
    
    # 6.删除分支
    git branch -d [branch_name]		#删除branch_name分支
    git push origin -d [branch_name]	#删除远程仓库中的branch_name分支
    # 对于分支中进行了一些开发动作,并且没有merge或者push到远程的分支,需要使用-D命令强制删除分支
    git branch -D [branch_name]
    
  6. Git标签操作

    Git可以给某个分支某个特定时间点的commit状态打上标签,表示重要节点。利用标签,可以很方便的切换到标记时commit的状态(需要和branch一起使用)。

    比较有代表性的标签用法为:使用标签来标记发布节点(v1.0、v2.0)等。

    # 1.列出已有标签
    git tag		#列出所有tag
    git show [tag_name]		#查看指定tag的信息
    
    # 2.创建新标签
    git tag [tag_name]		#创建tag_name的标签,该标签指向当前branch最新的commit
    git tag -a [tag_name] -m "messiage"	#创建带备注信息的标签
    git tag [tag_name] [commit_id]		#为指定的提交版本(commit_id取前几位即可)打标签,commit_id可以使用git log --pretty=oneline查看所有分支的提交历史和commit_id
    
    # 3.将标签推送至远程仓库
    #默认git push推送代码时并不会推送tag,因此必须显性地推送标签到服务器
    git push [remote] [tag_name]		#将标签tag_name推送至远程
    git push [remote] --tags			#一次性推送本地所有标签
    
    # 4.检出标签
    #使用branch和tag配合使用,来检出标签对应状态的分支版本,在使用该命令前,需要已经使用git tag [tag_name]为特定的commit创建好标签
    git checkout -b [branch][tag_name]	#根据tag_name标定的节点创建一个新的branch,如git checkout -b dev v1.0 根据v1.0标签创建一个dev分支
    
    # 5.删除标签
    git tag -d [tag_name]		#删除本地tag_name标签
    git push origin :refs/tags/[tag_name]		#删除远程标签
    

3. TortoiseGit工具使用

  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值