git日常利用的命令(开发差不多都能应付了)

本文详细介绍Git的基本使用流程,包括配置、克隆、提交、分支管理等核心操作,并提供了实用的命令示例,帮助读者快速掌握Git版本控制系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git使用:
在一部新电脑里进行git开始工作的时候:
1.安装git
2.在自己电脑中生成公密钥和进行一些git配置如全局变量,和登录密码(可以为空)  
$ ssh-keygen

Then add your new key to the ssh-agent:

$ ssh-add id_rsa


3.把密钥保存到自己github的count设置中

ssh -T git@github.com   登录


git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份

例如:git  clone  git://github.com/someone/some_project.git   some_project


git中一个很重要的概念那就是分3个方面:工作目录、暂存目录(也叫做索引)和仓库之间
git add -A   添加全部untrack track
git add -i   看添加的文件情况(暂存区)r u q s

git commit -m "说明"
git push origin master  上传远程库

查看所有commit提交记录 (为了了解提交的历史记录(也可以安装gitg界面工具进行查看))

git log

加上-p -2可以看到log的最新2个 差异性情况


托库到本地
git fetch origin master:tmp
git diff tmp
git merge tmp

下面的写法相当与先fetch下来然后进行merge两步并一步走(这种情况:如果发生冲突出错,那么先解决冲突然后再进行提交同步远程)

git pull origin master


当你要维护一个长期的项目:如稳定版本,测试阶段版本,开发版本 等情况的时候可能你就要用到branch分支的概念了:

1.创建本地branch 

git branch GraduationProject

git checkout GraduationProject

2.删除branch版本

git branch -d branchname

3.创建远程branch

git push originmyself GraduationProject    (originmyself位远程仓库    GraduationProject为远程新branch)

4.提交分支数据到远程服务器:
 git push origin <local_branch_name>:<remote_branch_name>

5.删除远程分支develop:
 git push origin  :develop


如果想获取其它分支信息,需要使用”git branch –r” 来查看, 如果需要将远程的其它分支代码也获取过来,可以使用命令:

git checkout -b 本地分支名 远程分支名


如果用到分支的概念那就可能用到merge,和rebase(衍合)的概念:

git merge otherbranchcommitpoint

git rebase master  (当前的分支在另一地方branchother,它是为了把other所有的提交都接到master branch中)   可以用 git rebase --onto  master  C200c来进行控制  (C200c之后的才接到master中)如果要更加灵活请看 git rebase --interactive让你更方便的完成一些复杂操作,比如丢弃、重排、修改、合并提交。没有图片体现这些,细节看这里:git-rebase(1)   https://www.kernel.org/pub/software/scm/git/docs/git-rebase.html#_interactive_mode

Cherry Pick  

(如果想先利用某次提交的变化可以考虑用这个:如你在master分支中想利用别分支当时提交的某个版本就可以进行cherry-pick来获得一次复制提交节点)

cherry-pick命令"复制"一个提交节点并在当前分支做一次完全一样的新提交。

git cherry-pick 2c33a            (把2c33a这个提交节点复制并提交到当前分支中)


Reset

reset还原       

当前提交点Head往后退

git reset Head~3         (利用--hard(复制到工作目录和index目录中)  --soft(都不) 如果没有参数默认的时候  (自复制到index目录中)  )


git  reset 只回退最后一次提交

对与特定文件进行还原

git reset --files与  git checkout --files很像  只是多了一个(自动复制到index目录中了)


可能有时也会用到:git stash    (当你在编码的时候还没完成一个新功能点,但是老板需要你在之前的稳定版本上进行bugs修改,那么你可想statsh放弃当前的功能修改,去修改bugs后,让后还原stash过的地方(git stash pop),继续完成你的新功能点)     git stash list列出stash过的全部


设置log 的graph模式:

要做到这样,命令行如下:


git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --


  这样有点长了,我们可以这样:


 git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"


  然后,我们就可以使用这样的短命令了:


  git lg



stash的话一定是基于某个版本的,而且将stash从栈内拿出来,一定是需要还原到对应的版本。通过git stash list可以清晰的看到每个stash对应的版本,如:
stash@{0}: WIP on master: e95dc37 Require administrator authority...
stash@{1}: WIP on md_develop: fcaa18f Add an object to recieve md...
比如你需要恢复stash@{1}这时候你需要做的是:
git checkout fcaa18f
git stash apply stash@{1}
尽量不使用类似git stash pop的方法。如果你当前fcaa18f所在的分支有继续往前推进的话,建议在fcaa18f上建立新的分支,然后继续stash@{1}的修改,并将stash@{1}的内容提交到新的分支上:
git branch new_develop
git checkout new_develop
git add FILES
git commit
后续再通过cherry-pick的方式,将修改的内容应用到其他需要这个修改的分支之上。


讲github比较好的文章

git图像讲解:http://marklodato.github.io/visual-git-guide/index-zh-cn.html#merge
http://blog.youkuaiyun.com/ithomer/article/details/7529022

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值