Git命令使用总结

简介: 1.在GitHub上创建了一个新项目,如何将本地的一个工程上传上去1) copy github项目地址2) 在android studio中打开terminal命令行,执行命令将本项目所有代码添加git add *3)执行命令提交git co...
1.在GitHub上创建了一个新项目,如何将本地的一个工程上传上去
1) copy github项目地址
2) 在android studio中打开terminal命令行,执行命令将本项目所有代码添加
git add *
3)执行命令提交
git commit -m "描述信息" 
4)执行命令将本地代码和远端路径绑定
git remote add origin https://github.com/renzhenming/ArRemote.git
5)执行命令提交代码
git push origin master
2.创建分支
git branch [branch name]
3.从git地址clone
git clone git@github.com:FBing/design-patterns.git     git@github.com:FBing/design-patterns.git是项目地址
4.查看当前所在分支
git branch 比如当前在master分支,那么会显示*master
5.查看远程分支
git branch -r
6.查看所有分支,包括本地和远程
git branch -a
7.切换到另一分支
git checkout [branch name]
8.创建分支的同时切换到该分支上
git checkout -b [branch name]

这一命令的效果相当于以下两步操作:
git branch [branch name]
git checkout [branch name]
9.将新分支推送到github
git push origin [branch name]
10.删除本地分支
git branch -d [branch name]
11.删除github远程分支
git push origin :[branch name] (冒号需要紧挨着分支名,不能有空格)
12.git将代码提交到远程分支非主分支

一个仓库可以包含多个分支,有一个默认的主分支:master
若想提交代码至远程仓库的某个分支(非主分支)
先查看下本地分支以及远程分支:git branch -a

img_ced854105cba3eec09ed50b0d6597eff.png
image

由本地分支(非主分支master)提交至远程分支,新建一个本地分支,并切换到此分支:Git branch-b temp
img_0dd2e5e3f7cb8c34751fa194ab11b7f0.png
image

如果已有本地分支可直接切换:git checkout [name]
img_e9a8c319d5493860922425a3bb981936.png
image

接下来三步走:

git add .
git commit -a -m 'xxxxx' //这里的-m后边是提交代码的描述信息

git push origin sunmaoyu //git push origin master的意思就是上传本地当前分支代码到master分支。git push是上传本地所有分支代码到远程对应的分支上。
img_9de04fd5f2dfe80beb067b212a2f5204.png
image
img_421ff3340fdcdab4cdc63e11161a1055.png
image
img_b8ea0ffe44703eeafaa766482e6290df.png
image

· git add -A 提交所有变化
· git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
· git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

13. git add .之后,取消add状态
git reset HEAD <file> file为完整路径
可以通过git status 获取到
14.修改代码后如何尚未add的时候取消所有的修改
git checkout -- <file>
file为完整路径
可以通过git status 获取到
15.合并分支代码
1、进入要合并的分支(如开发分支合并到master,则进入master目录)
git pull
2、查看所有分支是否都pull下来了
git branch -a
3、使用merge合并开发分支
git merge 分支名
4、查看合并之后的状态
git status 
5、有冲突的话,通过IDE解决冲突;(没有冲突的文件已经是commit状态了)
6、解决冲突之后,将冲突文件提交暂存区
git add 冲突文件
7、提交merge之后的结果
git commit 
如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
8、本地仓库代码提交远程仓库(没有冲突,merge之后直接push)
git push
git将分支合并到分支,将master合并到分支的操作步骤是一样的;
16.查看远程服务器地址
git remote -v
17.列出当前仓库的所有tag
git tag
18.创建tag,附注tag(v1.2是tag名称,-m后是注释信息)
git tag v1.2 -m "1.2版本的tag"
19.切换到某一个tag(例如:git checkout v1.2)
git checkout [tagname]
20.查看标签信息(可以看到-m后的注释信息)
git show v1.2
21.删除标签(打错标签需要修改的时候,需要先删除,再重新打新的)
git tag -d v1.2
22.提交本地tag到git服务器(通常的git push不会将标签对象提交到git服务器,需要进行显式的操作)
git push origin v1.2
23.提交所有本地标签到git服务器
git push origin --tags
24.在最后一次commit上 打标签
git tag -a "v0.2" c98c186ebb381005b495f6f1f2a65dc72195ad9d -m 'v0.2'
23.提交所有本地标签到git服务器
git push origin --tags
24.本地创建新分支后上传到服务器同时创建服务器新分支
1.git branch 新分支名                创建本地新分支
2.git checkout 新分支名            切换到这个新创建的分支上,此时,原来的代码都在这个新分支上
3.git push origin 新分支名:服务器分支名(新创建的原来不存在的)        这样就把代码上传到了服务器上一个新的分支中
25.类似操作git log 之后如何退出状态的方法

git log 进入了这种状态

。。。
Date:   Thu Aug 10 11:18:48 2017 +0800

    testfight 3105
:

苹果电脑按W Q键可退出

使用中发生的一些问题
Can't update: no tracked branch

服务器创建了新分支,本地创建并checkout之后更新代码,提示如下,表明没有建立连接,所以只需要按提示输入命令

git branch --set-upstream v4.2 origin/v4.2

可能会提示

 The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-toBranch v4.2 set up to track remote branch v4.2 from origin.

不用管它,已经可以更新代码了

异常:Can't update: no tracked branch
        No tracked branch configured for branch v4.2.
To make 
        your branch track a remote branch call, for example,
git 
        branch --set-upstream v4.2 origin/v4.2
Git(some untracked working tree files would be overwritten by merge ,Please move or remove them before you can merge. Aborting)
发生这一问题时如果需要被move的文件是android studio自动生成的,这时不能直接在android studio里删除文件,因为你删除后会再次生成,pull或者update的结果是仍有这一错误解决的办法是关闭android studio 进入需要被删除的文件夹中将文件删掉,然后直接在命令行中git pull ,这样就
可以把文件pull下来注意在pull之前不可以打开android studio,防止再次自动生成
26.撤销commit soft reset 和 hard reset

commit到本地后,如过需要撤销这次commit可以这样执行
先使用git log 查看 commit日志

    commit 422bc088a7d6c5429f1d0760d008d86c505f4abe  
    Author: zhyq0826 <zhyq0826@gmail.com>  
    Date:   Tue Sep 4 18:19:23 2012 +0800  
      
        删除最近搜索数目限制  
      
    commit 8da0fd772c3acabd6e21e85287bdcfcfe8e74c85  
    Merge: 461ac36 0283074  
    Author: zhyq0826 <zhyq0826@gmail.com>  
    Date:   Tue Sep 4 18:16:09 2012 +0800  

找到需要回退的那次commit的 哈希值,

git reset --hard commit_id 

这样操作的结果是提交到本地的代码会消失,同样工程中的代码也会撤销,相当于完全回到了上一个节点
如果仅仅想去掉本地提交而不影响工程中的代码,可以这样

git reset --soft commit_id 

两者的区别如下
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

27.撤销push到远端的代码

在使用git时,push到远端后发现commit了多余的文件,或者希望能够回退到以前的版本。
先在本地回退到相应的版本:

git reset --hard <版本号>
// 注意使用 --hard 参数会抛弃当前工作区的修改
// 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交

如果此时使用命令:

git push origin <分支名>

会提示本地的版本落后于远端的版本


img_26bc7983a9388a0bb598a89ea0c60388.png
image

为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数--force

git push origin <分支名> --force
28.命令合并分支代码

合并步骤:
1、进入要合并的分支(如开发分支合并到master,则进入master目录)
git pull
2、查看所有分支是否都pull下来了
git branch -a
3、使用merge合并开发分支
git merge 分支名
4、查看合并之后的状态
git status
5、有冲突的话,通过IDE解决冲突;(没有冲突的文件已经是commit状态了)
6、解决冲突之后,将冲突文件提交暂存区
git add 冲突文件
7、提交merge之后的结果
git commit
如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
8、本地仓库代码提交远程仓库(没有冲突,merge之后直接push)
git push
git将分支合并到分支,将master合并到分支的操作步骤是一样的;

29. Android Studio 项目取消 GitHub关联

有时候和github关联的时候,我们执行了git remote add origin http://xxxx将本地仓库和远程地址关联了起来,但是发现这个地址不是我们想要的地址,这个时候再重新git remote add origin http://yyyy,会提示

fatal: remote origin already exists.

正确的操作步骤应该是
1、先删除远程 Git 仓库
git remote rm origin
2、再添加远程 Git 仓库
git remote add origin http://xxxx

30.git stash命令

本地做了修改之后,如果又突然需要update代码,但是由于本地的修改并不完整,你还不想commit,这时可以使用stash命令,这个命令会先将你的修改保存,执行之后本地代码会恢复到上一次commit的状态

git stash

然后update服务器代码,更新完成之后执行再执行stash恢复刚刚保存的代码

git stash pop

此时你会发现,原本你在本地修改的代码已经又恢复了,并且也已经完成了和服务器的同步

31.git push origin与git push -u origin master的区别

$ git push origin

上面命令表示,将当前分支推送到origin主机的对应分支。 

如果当前分支只有一个追踪分支,那么主机名都可以省略。 

$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项
会指定一个默认主机,这样后面就可以不加任何参数使用git push。

$ git push -u origin master 上面命令将本地的master分支推送到origin主
机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

 不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此
外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。
Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方
式。

相关文章
|
3月前
|
存储 开发工具 git
|
2天前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
15 1
[Git]入门及其常用命令
|
3月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
65 0
|
25天前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
89 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
5天前
|
开发工具 git 开发者
|
5天前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
24 0
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
2月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
2月前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
本文介绍 Git 的核心概念,如仓库、提交、分支与合并,并提供了常用命令,如初始化仓库 (`git init`)、提交更改 (`git commit -m &quot;Commit message&quot;`)、拉取 (`git pull`) 和推送 (`git push`) 等。此外,还分享了高级技巧,如撤销提交 (`git revert &lt;commit&gt;`)、交互式暂存 (`git add -i`) 和使用别名简化命令 (`git config --global alias.ci commit`) 等,帮助开发者提升效率。无论是初学者还是资深开发者,都能从中受益。