git常用命令

git常用命令

git init 在当前目录生成一个git库。命令执行将在本目录下生成.git文件。

git add xxx 将文件或目录添加到暂存区。

git commit -m 提交描述。提交及其说明。 如果需要更加详细的提交说明,可以不加-m参数,此时git会调用文本编辑器等待输入更加详细的提交说明。

git commit --amend 覆盖上一次提交的信息。比如在某次漏提交了某个文件,再次提交时可用git commit --amend将修正上一次提交。执行后上一次的提交将会被覆盖掉。 如果中间有其他人的提交,则无法使用该命令。

git commit -am “提交说明” 将改动的文件提交到仓库。 一次操作完成git add 和git commit。一般在改动的文件很少的时候使用。

git log 目录/文件,查看某个目录或文件的提交日志。

git log --graph 以图表形式查看分支。

git checkout xxx 切换到xxx分支上,如果该分支不存在,会报错。

git checkout -b xxx 创建新的分支并切换到xxx分支上,xxx是分支名

git checkout -b xxx 提交号, 在提交号处的节点创建新的分支并指向这个节点。

git checkout 提交号。将当前分支切换到指定记录。

git checkout HEAD^ 将当前分支切换到上一次提交。^^切换到上两次提交。

git merge xxx, 将xxx分支合并到当前分支。如当前分支为master,那么master此时会新建一个特殊的节点, 这个节点指向xxx分支最后一次提交的节点,同时也指向master上一个节点。即这个特殊的节点有两个父节点。实际上代码都合并到了master上了,这样的方式只是记录了提交历史。这与rebase有本质的区别。

git rebase xxx, 即以xxx的提交记录为基准,将当前分支的提交记录复制到xxx分支上来。这样便会形成线性的提交记录。
也可以git rebase master bbb,将bbb上的不同提交记录复制到master上来,并且将bbb的指向复制后的最新节点。
(黄金法则:不要在公共的分支上使用rebase)
在代码有冲突的情况下,变基失败时会提示,非分支,正变基,这种情况下,可以使用git rebase --abort命令撤销变基请求。
在实际操作中,如果在变基时发生了代码冲突,git会提示让修改冲突,修改完冲突后使用git add添加修改过的文件后再运行git rebase --continue继续变基。如果有多次,这个过程可能要进行多次。

git reset bugFix^ 将当前分支(本地分支)代码回滚到上一次提交的地方,改动的文件还在暂存区。

git revert HEAD,将远程分支回滚到上一次的提交。

git cherry-pick <提交号>, 将某个分支上的某些提交复制到当前HEAD节点的下面,并且HEAD依然指向最新的节点。
如xx1, xx2,xx3分别是三个不同分支的提交号,那么在当前分支上执行git cherry-pick xx1 xx2 xx3,会将其他分支相应的提交复制到当前分支上来。 (如在新建的分支bugFix上提交了三笔,前两笔只是调试时的提交,第三笔是真正修改bug的提交,那么此时可以将分支切换到master,然后在master上git cherry-pick 提交号,将最后一笔提交复制到master分支上来。)

git rebase -i xxx, 在rebase命令的基础上弹出交互式弹窗,可以调整rebase的顺序及去掉某些提交。 此命令是在当前分支上调整提交记录。

git tag V1 C1, 将提交C1打上标签V1,V1这个标签不会被改变。 可以用来记录某些里程碑版本信息。 如果不指定C1,那么将在当前分支HEAD处建立tag。

git describe 分支名, 输出本分支上最近的一个tag信息,如v1_2_gC4。其中v1是离C4最近的tag标签, C4是当前分支最新提交。 其中2表示这两个提交记录中相差2笔提交。

远程仓库只是本地仓库在另一台计算机上的拷贝。
git clone 在本地创建一个远程仓库的副本。

远程仓库命名规范是<remote_name>/<branch_name>。当用git clone时git已经自动将远程仓库命名为origin了。

git fetch 从远程仓库中下载本地仓库中缺失的提交记录,同时更新远程分支指针。 即将本地仓库中的远程分支和远程仓库保持同步。 需要注意的是,git fetch不会改变本地仓库的状态。

git pull, 由于git fetch只是下载了数据,并没有改变本地仓库的数据,故经常还需要git merge <fetched_branch>来合并下载来的数据。 故git合并了这两个常用的命令。git pull 等同于git fetch 与git merge两条命令。

git push 将本地仓库修改推送到远程仓库中, 同时修改本地远程分支的指针。 一般在git push前先git pull同步一下远程仓库的代码,否则git push可能会失败。
一般用法:git push -u origin bugFix,将bugFix分支推送到远程并建立一个映射关系。

git branch 查看本地分支,加-a参数可以查看所有的分支,包括远程分支。

git remote -v 查看远程仓库地址。

git remote add origin git@gitlab.com:namespace/projectname .git 将本地git库关联到github库中。

git常用配置

git config --global user.name “姓名”, 设置git的使用姓名, 这个会在提交的时候显示。

git config --global user.email “邮箱地址”

通过git config --list可以查看现有的git配置。

github相关操作

使用如下命令创建ssh key
ssh-keygen -t rsa -C “xxx@qq.com”。

在github账户设定中,选择SSH key菜单,然后将生成的密钥文件id_rsa.pub复制到这里。添加之后github能自动识别其中的rsa的值。 此时则可以通过密钥对与git通信。
ssh -T git@github.com 可以测试是否与github成功连接。

在github页面中输入shift+/调起快捷键对话框。(也即输入?调起)

创建pull request的方法。

1、在对方库的页面上点击fork,此时github会在自己账户下生成相应的git库并跳转到这个库的页面。

2、复制库链接,通过git clone将项目检出到本地。

3、在本地创建一个分支(一般会创建一个分支来修改),作出改动后commit。

4、将该分支推送到远程仓库 git push -u origin xxx。此时可以在github页面看到新创建的分支。

5、在页面中选择该分支,右侧有new pull request选项,点击后填写备注提交就可以了。

git日常常见操作

1、在通过git checkout commitid的方式回到了某个commitid时,如果想回到最新状态,则直接git checkout 分支名即可。
此时通过git log是查看不到该commitid后面的提交日志的,需要使用git reflog来查看所有的日志,找到head的commitid后,也可以使用git checkout commitid的方式回到head。

2、关于revert后再合并时文件丢失或文件不存在问题,可以参考 知乎这篇文章

3、如果本地合并了别人的分支,发现合并错误了。但好在本地的修改还没有推送到远程,我想干净的回退的怎么办呢?
可以使用 git reset --hard commitid 命令回到合并前的状态。注意commitid的选择,避免后续推送到远程时影响远程的代码。

4、在开发中,经常需要看某个分支是什么时候创建及其对应的commitid。则可以使用如下命令
git reflog show 分支名。
如果想知道具体的时间,则可以加–date=iso选项(注意,是两个横杠)。 即
git reflog show --date=iso 分支名

5、当我们在开发时有多笔提交,但是在推送时想把这些提交合并成一个提交,这样对于生成提交日志和回退都是很有帮助的。
这时可以使用交互式变基命令
git rebase -i commitid。
如果这个过程中有错,可以使用git rebase --abort回退到未变基的状态。 参考

6、当我们使用了交互式变基将本地的多个提交合并时,有可能在推送时被拒绝,因为本地代码和远程的不一致。当我们使用git pull后又发现本地的除了变基后的commit外,之前的多个commit还是存在的。之前来回操作了几次才发现了问题。这种情况下要推送,一定要注意不要影响别人的代码。
好在一般都是在自己的个人分支上多次提交,然后合并成一个提交后,合并到功能分支。 所以我们可以使用如下命令
git push --force origin branchxxx
强制推送到远程。

为了避免在公共分支推送,可以使用
git push --force-with-lease origin branchxxx
来推送,如果这个分支有其他人提交时会提出警告,从而避免产生不良影响。 参考

7、用另一个分支的文件替换当前的文件
git checkout branch – filename
branch是源分支名,即从哪个分支取文件到当前分支。注意filename是全路径名,如果在当前目录下,则可以只写剩余的路径。 注意中间是两个杠。一般在错误的分支修改了文件后可以使用这个命令将修改copy过来。

8、git log 文件名 可以查看某个文件的历史。
但是如果使用的是git-bash,则需要注意将路径改成类似unix的规范。

9、如果在本地先使用git init初始化仓库的话,在正常的提交了文件之后,如果想关联远程仓库可以如下操作。
先需要在gitlab创建一个仓库,可以同名也可以不同名,然后copy下git clone的连接。

使用 git remote add origin 远程仓库地址。
git push -u origin master
其中-u就是 --set-upstream的简写,两者都可以。
在实际中发现,如果没有关联远程仓库,使用git branch命令时不显示分支。

这种方式虽说可以关联远程库,但是后续的提交上老是提示有冲突。最好还是先创建远程库,在拉取的方式来处理。

10、有时在比对分支的某些jar包或其他二进制文件时,从名称又看不出是否又变动,则可以通过查看md5来确认文件是否有变更。
window上使用如下命令查看md5:
certutil -hashfile 文件名 MD5

11、 删除一个远程分支
git push origin --delete 分支名称

12、修改git 常用的编辑器为vim
git config --global core.editor vim

13、将某个文件回退到某个commit
git checkout commit_id “file_path” ,其中commit_id是要回退版本的commit id,file_path是文件路径,注意是全路径名,且要用双引号括起来,否则会报路径不在代码仓库中。

14、如果项目工程很大,切换分支成本很高,则可以尝试在不同的目录在拉取一份代码。
此时,可以通过git clone https://xxx的方式拉取。(使用git clone git@这样的方式容易报host变更的问题,需要添加相应的host到远程库。)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Git常用命令大全: Git是现代化的版本控制系统,常被用于软件开发,协作和管理。它允许在开发过程中创建和管理不同的版本,跟踪文件的更改,以及支持团队合作。Python则是一种广泛应用于开发Web应用程序以及数据科学和人工智能领域的高级编程语言。在使用Git时,Python的代码可以与Git进行集成。这里是Python Git常用命令的大全: 1. git init:初始化一个新的 Git 仓库。 2. git clone:从现有的 Git 仓库克隆项目,可以是本地仓库或远端仓库。 3. git add:将文件添加到 Git 仓库中。git add . 可以添加所有更改。 4. git commit:将所有已添加的文件提交到本地 Git 仓库中。 5. git status:查看当前工作目录中 Git 仓库的状态。 6. git log:查看提交记录。 7. git push:将本地 Git 仓库的更改推送到远端仓库。 8. git pull:将远端 Git 仓库的更改拉到本地仓库。 9. git branch:创建新的分支。 10. git checkout:切换分支。 11. git merge:将一个分支的更改合并到另一个分支。 12. git revert:撤销一个提交。 13. git rebase:将一个分支的修改合并到当前分支。 14. git config:配置 Git。 15. git remote:管理远端仓库。 这是Python Git常用命令的大部分命令,但这并不是全部。在使用Git和Python时,这些命令应该是最为重要的。无论是在个人项目中还是团队合作中,这些命令会让你更加高效地使用Git,并保护你的代码免遭不可挽回地灾难。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值