Git python add all

Работа с Git#

Для управления Git используются различные команды, смысл которых поясняется далее.

git status#

При работе с Git, важно понимать текущий статус репозитория. Для этого в Git есть команда git status

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/git_status_0.png

Git сообщает, что мы находимся в ветке master (эта ветка создаётся сама и используется по умолчанию), и что ему нечего добавлять в коммит. Кроме этого, Git предлагает создать или скопировать файлы и после этого воспользоваться командой git add, чтобы Git начал за ними следить.

Создание файла README и добавление в него строки «test»

$ vi README $ echo "test" >> README

После этого приглашение выглядит таким образом

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/bash_prompt.png

В приглашении показано, что есть два файла, за которыми Git ещё не следит

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/git_status_1.png

Два файла получилось из-за того, что у меня настроены undo-файлы для Vim. Это специальные файлы, благодаря которым можно отменять изменения не только в текущей сессии файла, но и прошлые. Обратите внимание, что Git сообщает, что есть файлы, за которыми он не следит и подсказывает, какой командой это сделать.

Файл .gitignore#

Undo-файл .README.un~ – служебный файл, который не нужно добавлять в репозиторий. В Git есть возможность указать, какие файлы или каталоги нужно игнорировать. Для этого нужно создать соответствующие шаблоны в файле .gitignore в каталоге репозитория.

Для того, чтобы Git игнорировал undo-файлы Vim, можно добавить, например, такую строку в файл .gitignore

Это значит, что Git должен игнорировать все файлы, которые заканчиваются на «.un~».

После этого, git status показывает

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/git_status_2.png

Обратите внимание, что теперь в выводе нет файла .README.un~. Как только в репозиторий был добавлен файл .gitignore, файлы, которые указаны в нём, стали игнорироваться.

git add#

Для того, чтобы Git начал следить за файлами, используется команда git add.

Можно указать что надо следить за конкретным файлом

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/git_add_readme.png

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/git_add_all.png

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/git_status_3.png

Теперь файлы находятся в секции под названием «Changes to be committed».

git commit#

После того, как все нужные файлы были добавлены в staging, можно закоммитить изменения. Staging — это совокупность файлов, которые будут добавлены в следующий коммит. У команды git commit есть только один обязательный параметр – флаг «-m». Он позволяет указать сообщение для этого коммита.

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/git_commit_1.png

После этого git status отображает

https://raw.githubusercontent.com/natenka/PyNEng/master/images/git/git_status_4.png

Фраза «nothing to commit, working directory clean» обозначает, что нет изменений, которые нужно добавить в Git или закоммитить.

Источник

GIT Operations with Python Scripting.

GIT Operations with Python Scripting.

As we all know that Python is a great platform to automate infrastructural operations like Deploying across multiple platforms, Scheduled handler operations, Notification and alert management and more. Automating GIT Operations is highly needed in Infrastructure automation. Especially, when we have a job to publish or modify the code back to GIT Repositories. Let’s discuss some useful GIT Operations with Python Scripting.

In this tutorial, we will take Python3 for the example. Comment if you need the tutorial in multiple versions of tools and platforms. So, the knowledge required for this tutorial is:

Let’s create a python file to workaround. Here, I have created git-python.py to run Git operations. Also, GitPython is one of the great libraries to interact with Git Repositories. So, we are going to use the GitPython library for the tutorial purpose. We can import the GitPython library in our python script as mentioned below

By this, we are initiating GitPython Library and from there we are importing Repo Module

Basic Git Operations.

We will see how the following basic Git Operations are handled in the python script.

  • Git Init
  • Git Clone
  • Git Checkout
  • Git Fetch
  • Git Add
  • Git Commit
  • Git push
  • Git Pull
  • Git Merge
  • Git Reset

Let’s see how these Git Basic operations in Python GitPython one by one.

Git Init

To initiate is to create the bare Git repo in the specified directory.

from git import Repo # To initiate new Git repo in the mentioned directory repository = Repo.init(repo_path)

Git Clone

Clone an existing repository into a new directory,

import git git.Git(repo_path).clone("https://github.com/digitalvarys/test.git")

Git Checkout

To replace the current working files with files from a branch:

import git repo.git.checkout('branchename')

Also, if you are checking out with a new branch:

repo.git.checkout('-b', 'branchename')

Git Fetch

Then, To Grab the latest changes from a remote repository into the local repository:

import git repo = git.Repo('name_of_repo') repo.remote().fetch()

Git Add

To put current working files into the current index:

import git repo.git.add('--all') # to add all the working files. repo.git.add('index.html’,’style.css’) # to add specific working file(s).

Git Commit

To commit indexed changes to a local branch in the local repo.

Git push

To push all the committed changes in branch from the local repository to the remote repository.

import git repo.git.add('--all') repo.git.commit('-m', 'commit message from python script', author='test_u[email protected]') origin = repo.remote(name='origin') origin.push()

Git Pull

To fetch all the changes from the remote repository to the local repository:

import git repo = git.Repo('name_of_repo') origin = repo.remote(name='origin') origin.pull()

Git Merge

To Merge the current branch to the master (or any specified) branch:

import git repo = git.Repo('.') master = repo.branches['master'] current = repo.branches['feature'] root = repo.merge_base(current, master) repo.index.merge_tree(master, base=root) repo.index.commit('merging master into current branch', parent_commits=(current.commit, master.commit))

Git Reset

To point the current branch to some specific revision or branch and replace all files with the specified revision or branch.

import git repo = git.Repo(‘.’) repo.git.reset('--hard')

Then, there are many more Git operations which we are using for day by day activities and for automating some Git operations. Mention the missing Git operations in the comment. I will try my best to add the content you are looking for.

Conclusion

In this article, we have discussed some useful GIT Operations with Python Scripting to automate DevOps Operations like CICD Automation, Release process and more. However, Python is much more capable to automate more operations of platforms and tools. So, In our upcoming articles and tutorials, we will see all the infrastructural and platform automation with python. Stay tuned and subscribe DigitalVarys for more articles and study materials on DevOps, Agile, DevSecOps and App Development.

Experienced DevSecOps Practitioner, Tech Blogger, Expertise in Designing Solutions in Public and Private Cloud. Opensource Community Contributor.

Источник

Читайте также:  Java home not set ubuntu
Оцените статью